Plan your infrastructure. Generate the build.
Pick the capabilities your app needs, see what each vendor actually costs as you scale — Supabase vs Neon, self-host vs Clerk, R2 vs S3 — then generate the prompt that tells your coding agent how to build it with verified PartKit parts. We compare every option and sell none.
Every PartKit part that owns tables shares one Postgres. This is the floor your whole stack runs on — and the reason the parts cost $0 per capability. (PartKit parts need Postgres; Firestore-only platforms can't host them.)
auth.sessionSessions, sign-in, accounts. PartKit wraps Better Auth on your Postgres.
email.transactionalWelcome, receipts, resets. PartKit's part flips vendors in one commit.
storage.uploadDirect-to-bucket uploads. PartKit's part signs for any S3-compatible vendor — switching is an env change.
jobs.queueQueues + cron. PartKit wraps graphile-worker on your Postgres — no separate queue service.
ratelimit.apiPer-IP / per-key limits. PartKit's part is in-memory by default, with a Redis store seam.
webhooks.ingestVerify + ingest vendor events. PartKit's part does HMAC verification + replay defense itself.
Revenue & margin
The question your infra cost only half-answers: do you make money? Edit the assumptions — everything below recomputes against your selected stack's cost.
On each $20.00/mo charge, the processor takes $0.88 — you keep $19.12.
Assumes one charge per paid user per period and a flat conversion rate. Payment fee defaults to Stripe's standard 2.9% + $0.30; adjust for your processor or international mix. “Other / AI” is a single editable line for now — a detailed AI-API model (text / image / video / audio by provider) is coming. Powered by the same stack you plan above; in production your billing.subscription part handles the charges.
Your agent's build prompt
Paste this into AGENTS.md / CLAUDE.md. Your agent installs exactly this stack — verified parts it can't drift, plus your external picks.
Use PartKit for this app's backend infrastructure — verified parts you own, your agent assembles, you write only the seams. Host: Fly.io (Postgres). Set DATABASE_URL to it. Install these parts (one provider per capability — never hand-roll them): npm i -D partkit && npx partkit init npx partkit add auth.session npx partkit add storage.upload npx partkit add jobs.queue npx partkit add ratelimit.api npx partkit add webhooks.ingest npx partkit migrate # parts that own tables ship migrations Wiring notes: - storage.upload: point STORAGE_ENDPOINT/BUCKET at Backblaze B2 (S3-compatible — vendor is config, not code). Outside PartKit (your choice on the planner — wire these yourself): - Transactional email: Loops (no PartKit part — wire its SDK directly). Rules: never edit anything under parts/ or import a part's internals — wire each from its seams.md alone. Spend your effort on our UI and business logic; the infrastructure is already tested. Finish only when `npx partkit audit` is green. Stack: TypeScript, Node 22+, Next.js App Router, Postgres.
Approximate public list prices, last verified 2026-06-13 — each line links its source, corrections land as PRs, and a freshness check fails CI when any price ages past 90 days. Metered vendors auto-pick the cheapest plan at your volume; bundle costs model the dominant overage (auth MAU, storage GB) — database-size, compute, and egress overage aren't modelled and are noted per vendor. Assumes egress ≈ stored GB and ~50 rate-limited requests / user / month. PartKit certifies vendors and sells none of them; this compares every option and recommends the one your numbers favor. Not a quote.