Boring Docs
Index
Map of all BoringPush guides. Start here, ship boring things fast.
Boring Docs
Convention over configuration. If it is not in this map, it does not exist yet.
BoringPush is a Next.js starter with one-switch database (SQLite / MongoDB / Supabase) and one-switch billing (Dodo / Stripe / LemonSqueezy), gated by a single paywall verb: requirePaidUser().
Read in this order
01-get-started.md— clone, env, dev server, first login (SQLite, zero setup).02-project-structure.md— where everything lives (providers/,libs/,models/,app/api/,components/,config/,data/).03-config-env.md—.env.examplekeys: app, auth, DB_PROVIDER, BILLING_PROVIDER, analytics, GitHub delivery.04-auth.md— Google OAuth, magic links, dev login, JWT sessions, stale-session guard, admin allowlist.05-database.md— tri-DB parity, registry delegation, verbs, migrations, backups.06-payments.md— tri-rail billing, checkout, portal, cancel, webhooks, idempotency.07-paywall.md—hasAccess/planType, PaywallGate, vault/pro guards, claim-repo.08-emails.md— Resend send + NextAuth magic link authentication.09-seo-analytics-blog.md— SEO tags, analytics beacon, markdown blog.10-security.md— IDOR bindings, open-redirect allowlists, rate limits, headers, deps.11-deployment.md— Zero-CI git push, private Tailscale mesh, PM2, nginx, SSL, swap, ops.12-lock-checklist.md— freeze criteria: what must be green beforev1.0-locked.13-build-features.md— the data-first engineering manual for humans & autonomous agents.14-ditch-vercel-vps-guide.md— Why ditch Vercel ($5/mo VPS), Cloudflare Tunnel + Tailscale zero-port setup, and battle-tested troubleshooting.
Conventions (memorize these)
- Data first: schema on all backends → provider → registry → thin route → UI.
- Thin routes (≤ 40 lines): validate → auth → one provider call → JSON.
- Money rules: price comes from the product row, never the client; webhooks dedupe on
providerPaymentRef. - Shims are frozen:
models/*.jsandlibs/mongoose.jsre-export only. - No new top-level folders without updating
CONVENTIONS.md.
Next step
Open 01-get-started.md.