https://github.com/auditmos/ogsfrompoly-lp
Public landing page for ogsfrompoly.com — Polymarket skilled-trader detection: weekly strategy track record + monthly project P&L. Astro on Cloudflare Workers.
https://github.com/auditmos/ogsfrompoly-lp
astro cloudflare-workers content-collections landing-page polymarket prediction-markets rss tailwindcss typescript
Last synced: 7 days ago
JSON representation
Public landing page for ogsfrompoly.com — Polymarket skilled-trader detection: weekly strategy track record + monthly project P&L. Astro on Cloudflare Workers.
- Host: GitHub
- URL: https://github.com/auditmos/ogsfrompoly-lp
- Owner: auditmos
- License: isc
- Created: 2026-05-31T13:32:26.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-08T06:38:41.000Z (24 days ago)
- Last Synced: 2026-06-08T08:18:31.616Z (24 days ago)
- Topics: astro, cloudflare-workers, content-collections, landing-page, polymarket, prediction-markets, rss, tailwindcss, typescript
- Language: TypeScript
- Homepage: https://ogsfrompoly.com
- Size: 402 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# ogsfrompoly-lp
*AI agent index: [llms.txt](./llms.txt)*
Source for **ogsfrompoly.com** — the public-facing landing page for [poly-track](../ogsfrompoly), a Polymarket skilled-trader detection project grounded in the 2026 papers by Gomez-Cram et al. and Akey et al.
The site publishes methodology, aggregate results, and open-book "financial statements" (strategy track record + project P&L) at a regular weekly + monthly cadence. Distribution is RSS plus per-page raw markdown (`/.md`) for LLM agents. No email capture, no signup, no comments.
> **Disclosure policy (load-bearing):** methodology + aggregate results only. Wallet references appear only as truncated / hashed IDs (e.g. `wallet_a3f…`). Live alpha is never published. See `/methodology` on the deployed site and `docs/` for the authoritative version.
## Status
- **PRD:** [#1](https://github.com/auditmos/ogsfrompoly-lp/issues/1) — single source of truth for scope, user stories, validation strategy
- **Implementation plan:** [`plans/ogsfrompoly-lp.md`](plans/ogsfrompoly-lp.md) — phased vertical slices
- **Issues:** [#2–#10](https://github.com/auditmos/ogsfrompoly-lp/issues?q=is%3Aopen+label%3Av1) (v1) · [#11–#12](https://github.com/auditmos/ogsfrompoly-lp/issues?q=is%3Aopen+label%3Av2) (v2, deferred)
- **Domain:** `ogsfrompoly.com` (registered at Cloudflare Registrar; zone active)
## Quick start
```bash
pnpm install
pnpm cf-typegen
pnpm dev # http://localhost:3000
```
## Stack
| Layer | Technology |
|-------|-----------|
| Framework | Astro 6 (`output: "server"`) |
| Adapter | `@astrojs/cloudflare` |
| Runtime | Cloudflare Workers (`nodejs_compat`) |
| Styling | Tailwind CSS v4 (`@tailwindcss/vite`), no JS config |
| Content | Astro content collections (markdown in `src/content/`) |
| Validation | Zod (frontmatter + endpoint boundaries) |
| Language | TypeScript strict (`@/*` → `src/*`) |
| Linter | Biome 2 |
| Testing | Vitest |
| Dead-code | knip |
| Analytics | Cloudflare Web Analytics (cookie-less) |
| Package manager | pnpm 10 |
No CMS, no submodule, no runtime fetch from upstream — content lives as markdown in this repo.
## Project layout
```
src/
├── pages/ # File-based routes (.astro, .md, .ts for endpoints)
├── content/ # Astro content collections (statement, future: article)
├── layouts/ # Shared HTML shells
├── components/ # Reusable Astro components
├── styles/globals.css # Tailwind v4 entry (@import "tailwindcss";)
└── env.d.ts # App.Locals typed against Cloudflare Env
plans/ # Phased implementation plans (carved from PRDs)
docs/ # Authoritative design docs (disclosure policy, schema)
```
Path alias `@/*` → `src/*`.
## Architecture
Three deep modules carry the system. Each has a small public interface and is tested at its boundary.
| Module | Interface | Hidden implementation |
|--------|-----------|----------------------|
| **Content Schema** | Zod-validated frontmatter for `statement` (and future `article`) collections | The cross-repo contract. Producer-side validation, schema version marker, breaking-change discipline |
| **Dual-Format Serving** | Any content entry resolves at both `//` (HTML) and `//.md` (`text/markdown`) | Single helper + catch-all route; no per-route boilerplate when collections grow |
| **Feed Generators** | `rss.xml`, `llms.txt`, `sitemap.xml` derived from content collections | Format renderers hidden; snapshot-tested for determinism |
See [`.claude/rules/deep-modules.md`](.claude/rules/deep-modules.md) and the architectural decisions in [`plans/ogsfrompoly-lp.md`](plans/ogsfrompoly-lp.md).
## Brand reference
Voice and aesthetic anchor: [hermes-agent.nousresearch.com](https://hermes-agent.nousresearch.com/). Bold display type, terminal/install-snippet moments, opinionated function-forward copy. The brand name `ogsfrompoly` is retained as owned cheekiness — a credibility signal for the prediction-market-native audience.
## Verification gate
Before declaring any change done, run all four:
```bash
pnpm types # astro check + tsc --noEmit
pnpm test # vitest
pnpm lint # biome
pnpm knip # no unused files / deps / exports
```
The same four are required by CI on every PR (see issue [#5](https://github.com/auditmos/ogsfrompoly-lp/issues/5)).
## Scripts
| Script | Purpose |
|--------|---------|
| `pnpm dev` | Dev server on http://localhost:3000 |
| `pnpm build` | Production build to `./dist` |
| `pnpm preview` | Preview the production build locally |
| `pnpm deploy` | Build + `wrangler deploy` |
| `pnpm cf-typegen` | Regenerate `Env` types from `wrangler.jsonc` |
| `pnpm test` / `:watch` / `:coverage` | Vitest |
| `pnpm types` | astro check + tsc --noEmit |
| `pnpm lint` / `:fix` | Biome check / auto-fix |
| `pnpm knip` | Unused files / deps / exports |
| `pnpm deps` / `:update` | Check / apply dependency updates via taze |
| `pnpm release` | semantic-release (CI only) |
## Cloudflare specifics
- Use `wrangler.jsonc` (not `.toml`).
- `custom_domain: true` on the route (never routes-with-zone_name) — see [`.claude/rules/cloudflare-deployment.md`](.claude/rules/cloudflare-deployment.md).
- SSL/TLS mode must be Full or Full (strict), never Flexible.
- HTTP → HTTPS via the "Always Use HTTPS" toggle, never the "Redirect from HTTP to HTTPS" rule (causes self-redirect loops on Worker custom domains).
- Access bindings via `import { env } from "cloudflare:workers"` — `Astro.locals.runtime` was removed in Astro v6.
- Per-env secrets live in `.dev.vars` / `.dev.vars.staging` / `.dev.vars.production` locally (never committed; wrangler loads `.dev.vars.` ahead of `.dev.vars` when `CLOUDFLARE_ENV=` is set) and as Cloudflare secrets in production.
## Agent-assisted development
- [`AGENTS.md`](AGENTS.md) (symlinked as `CLAUDE.md`) — project-wide agent guide
- [`.claude/rules/`](./.claude/rules/) — topic rules that activate based on the files being touched
- [`.claude/agents/`](./.claude/agents/) — design-doc writer / implementer / MVP enforcer
## License
ISC — see [LICENSE](LICENSE).