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.db on your laptop and libsql://your-db.turso.io in 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

  1. Domain + DNS on Cloudflare — 5 minutes.
  2. Turso database — create, grab the libsql:// URL and a token — 5 minutes.
  3. Vercel project — import the repo, paste the environment variables (the repo ships a documented .env.example and generators for every secret) — 15 minutes.
  4. Email domain on Resend for magic-link sign-in — DNS records, verify — 10 minutes.
  5. 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.