Documentation
Everything you need to run and contribute to Atlas.
Quick start
git clone https://github.com/pantha704/atlas.git
cd atlas
bun install
cp .env.example .env
bun dev
Environment variables
TURSO_DATABASE_URL / TURSO_AUTH_TOKEN — Database
GROQ_API_KEY — Primary AI · GEMINI_API_KEY fallback
GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET — OAuth
BETTER_AUTH_SECRET — JWT signing (openssl rand -base64 32)
CRON_SECRET — Protect /api/cron/fetch
RAZORPAY_KEY_ID / RAZORPAY_KEY_SECRET — Pro billing
RAZORPAY_PLAN_ID — optional recurring plan · else payment link (₹699)
RAZORPAY_WEBHOOK_SECRET — webhook HMAC · URL /api/billing/webhook
POSTHOG_KEY / SENTRY_DSN — optional observability
RESEND_API_KEY — Pro email delivery
Self-host (Vercel + Turso)
- Turso — create a DB, copy URL + token. Run migrations:
cd packages/db && bun run migrate(includes0007_score_cache_billing). - GitHub OAuth — callback
https://your-domain.com/api/auth/callback. - Vercel — import monorepo, set envs from
.env.example, deploy. API is/api/*via Astro catch-all. - Cron —
vercel.jsonhits/api/cron/fetchdaily; setCRON_SECRET. - Razorpay — create keys; optional Plan for subscriptions;
webhook to
/api/billing/webhookwith secret.
Typical setup: ~15 minutes on free tiers.
API reference
GET /health — Health + billing configured flag
GET /digest · GET /demo/digest
GET /my-digest · ?peek=1 cache-only · ?force=1 rescore
POST /billing/checkout · POST /billing/webhook (Razorpay)
GET /market · POST /feedback · GET /rss/:token.xml