The 40-minute stack: Cloudflare, Vercel, Turso
AEO Explorer runs on three services, all of which start free, none of which need an ops person. This is the stack we recommend for self-hosting it — and the reason "from license to live" is a 40-minute job, not a weekend.
Turso: the database that lets you start
Turso is hosted SQLite (libSQL), and it is close to unfair for a starting product:
- You already know it. It's SQLite — the schema, the queries, the mental model. Drizzle ORM speaks it natively; migrations are files in the repo.
- Local dev is the same code. Point the client at
file:./local.dbon your laptop andlibsql://your-db.turso.ioin production. No Docker, no local Postgres, no drift. - The free tier is genuinely generous — enough databases and storage that a beta with real users costs zero, and the paid tiers stay in coffee-money territory long after.
- It scales in an unusual direction: databases, not just rows. Turso is built for
thousands of databases, which is exactly the multi-tenant escape hatch you want on the
shelf — per-tenant databases later become a config change, not a rewrite. AEO Explorer's
data layer is already routed through a single seam (
getOrgDb) for precisely that reason.
Vercel: deploys you stop thinking about
Push to main, it's live — with preview deployments per branch, cron for the background worker, and function logs when something misbehaves. The hobby tier carries a beta comfortably; the first paid tier is 20 dollars. The honest caveat: hobby cron runs daily, not hourly, so scheduled scans wait for the paid tier — fine for trying it, worth 20 dollars once a team relies on it.
Cloudflare: the boring, correct choice for the edges
Domain at cost (no renewal ambush), DNS that propagates fast, and R2 for file storage — which AEO Explorer uses for exports, with S3-compatible APIs and no egress fees. You could run DNS anywhere; you just won't find a reason to.
The 40 minutes, itemized
- Domain + DNS on Cloudflare — 5 minutes.
- Turso database — create, grab the
libsql://URL and a token — 5 minutes. - Vercel project — import the repo, paste the environment variables (the repo ships a
documented
.env.exampleand generators for every secret) — 15 minutes. - Email domain on Resend for magic-link sign-in — DNS records, verify — 10 minutes.
- First deploy + migrations — push, migrate, sign in — 5 minutes.
That's the whole company: no servers, no containers, monthly infra cost of roughly zero while you validate.
If you'd rather do those 40 minutes together — screen share, your accounts, live — that's exactly what the Pro install bundle is: the $79 license plus a guided setup session, $199 total. Email hello@aeo-explorer.de and bring a domain.