pgx
PGX — Lightweight Postgres for AI agents. Written in Rust. Thousands of isolated databases in one runtime. 🐘
Translation pending
Every sport, one board — model leans, hit-rates, and EV across MLB, UFC, F1, tennis & soccer. Research/discovery only.
Translation pending
DataTypeScript · CSSGitHub @bythebarrOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
An MLB odds line-shopping tool: pick a price range with a slider and see every US-legal sportsbook currently quoting a line in that range, alongside each team/side's rolling historical hit rate and two side-by-side EV estimates (de-vigged market consensus vs. historical hit rate).
Research/discovery tool only in v1 — no bet placement or tracking.
See /home/codespace/.claude/plans/sequential-moseying-treehouse.md (or ask Claude) for the full design rationale and milestone plan.Read the full README ↗A multi-sport odds and props app: every price at every book next to ARCHR's own model, for NBA, NFL, UFC, MLB, soccer, tennis and F1.
/models.It's a research tool: it doesn't place bets.
| Path | What |
|---|---|
/ | Home: today across every sport |
/slate | The odds Slate: every game, every market, best price vs ARCHR |
/nba, /nfl, /mlb, /ufc, /f1 | Sport pages (boards, game/bout pages) |
/nba/props, /nfl/props, /mlb/props, /ufc/props | Player and fighter props |
/sports, /sports/<sport>, /sports/<sport>/props | The all-sports engine: soccer, tennis and every other league the feeds carry, with soccer and tennis props |
/models | Model report cards |
/api/cron/* | Background jobs (bearer CRON_SECRET) |
/api/health, /api/status | DB connectivity; job freshness and compute budget |
Design notes live in docs/architecture/. Start with operations.md (schedule, compute budget), MODEL-FRAMEWORK.md, and the per-sport props docs (nba-props.md, NFL-ADVANCED.md, MLB-PROPS.md, SOCCER-PROPS.md, TENNIS-PROPS.md, UFC-PROPS.md).
src/generated/prisma; import it from @/generated/prisma/client.Data sources:
Requires Docker (for local Postgres). Odds keys are optional: without one, the app still runs on ESPN's free lines, and ARCHR's own prices still show.
cp .env.example .env # every variable, with what it does; fill in what you need
docker compose up -d # local Postgres on :5432
npx prisma migrate dev # apply the schema
npm run dev # http://localhost:3000
npm run lint # eslint
npm run typecheck # tsc --noEmit
npm test # vitest
npm run build # production build
npx prisma studio # browse the local DB
Run any job locally with curl -H "Authorization: Bearer $CRON_SECRET" localhost:3000/api/cron/<job>.
Vercel Cron runs one route, /api/cron/tick, about 20 times a day. Each tick wakes the database once and runs every job that's due, by its own cadence or at fixed hours: odds, fixtures, results, box scores, history imports, grading and the Discord posts. The schedule lives in src/lib/ops/schedule.ts.
Pages also refresh the data behind them when it's stale. Viewing a page wakes the database anyway, so this costs nothing extra.
Why it's built this way: the production database is billed by the hours it's awake. See docs/architecture/operations.md.
GitHub Actions call the same /api/cron/* routes. They're manual, except the weekly Model Lab:
model-lab.yml: weekly (Monday), plus manual. Runs the backtests and fits against production, and saves the report cards behind /models.sync-free.yml: health check plus a one-off refresh.backfill-history.yml, all-sports-fill.yml: one-time history fills.poll-odds*.yml, poll-player-props.yml: on-demand odds polls. These spend credits.fire-card.yml, results-tick.yml: post the Discord card or recap now.reset-ledger.yml: wipes the results ledger. Destructive.ops-status.yml: read-only status.ci.yml: lint, typecheck, tests, build.The workflows need two repo secrets (Settings → Secrets and variables → Actions): APP_URL (the deployed base URL) and CRON_SECRET (the same value as the deployment's). Model Lab also needs DATABASE_URL.