Build Stack
How frontier-market founders ship faster.
What works for Atlas — as of May 2026.
A one-to-three-person team in any market can now ship something investor-credible in weeks, not months. The stack below is what Atlas runs on. We have no commercial relationship with any vendor named on this page. Nothing here is sponsored. Nothing here is affiliate-tagged. The point isn't to recommend tools — it's to give a founder in Tbilisi, Lagos, or Bogotá enough information to make the call themselves.
What changed
Two years ago, a credible MVP cost something like $50,000 — a team of contractors, a back-end engineer, a designer, four to six months. Today the same artifact is a weekend if you know what you're doing, and a month if you don't. The combination of frontier models, AI-native editors, and zero-config hosting collapsed the build cost by an order of magnitude.
That matters more for a founder in Lagos than a founder in San Francisco. The SF founder already had access to capital; cheap build cost is convenience. The Lagos founder didn't; cheap build cost is the difference between shipping and not.
What we don't use, and why
Naming what we rejected is the most useful part of a stack post. We don't use Supabase — we wanted the plain-Postgres path with Drizzle, and Supabase's value-add lives mostly in the client SDK. We don't use Firebase — vendor lock and a data model we'd outgrow. We don't self-host Postgres or Redis — the operational tax isn't worth it at our size, and won't be worth it until we're much larger. We don't use a separate analytics SaaS — we built lightweight page-view tracking into the app instead.
The editor: Cursor
An AI-native editor is the single biggest unlock for a 1–3 person team. Cursor is not magic — it's a Visual Studio Code fork with a serious agent loop wired in. The unlock is the cadence: you describe what you want in a sentence, the editor writes it, you read every line of the diff, you ship. The multiplier is real even if you're a strong engineer; it grows for everyone less senior.
Alternative we considered: Zed — fast and beautiful, and its AI integration is improving quickly. Cursor was ahead on agent-loop ergonomics when we made the call.
Failure mode we hit: Cursor will happily generate insecure code if you don't review every line. We caught a SQL-injection-shaped diff in review once. The tool is a multiplier on attention, not a substitute for it.
Frontier-market caveat: Cursor is paid (low USD/month). It has historically rejected some Nigerian and Georgian cards. Wise or Revolut work as a payment-method bridge if your local card is declined.
Hosting and functions: Vercel
Vercel is what we picked for hosting. Zero config, preview deploys per branch, a generous free tier, and Fluid Compute for the server-rendered routes. Atlas itself runs on it. The out-of-the-box developer experience saved us days of setup we would have paid for elsewhere.
Alternative we considered: Railway. Excellent product, fairer pricing at certain scales, but Vercel's Next.js integration and preview-URL workflow are still the path of least resistance for an App Router app.
Failure mode we hit: function execution has a ceiling — 120 seconds on the Pro plan. Anything longer needs a different shape (a queue, a worker, a container somewhere else). If your hot path is >120s, Vercel is the wrong tool.
Frontier-market caveat: the nearest Vercel edge to Lagos and Tbilisi is Frankfurt (roughly 80–120ms one-way). To Bogotá, Washington (~90ms). The edge network is good but not magic. Test on a real connection in the country you're selling into — DevTools throttled to Slow 3G is the cheapest realistic check.
The escape hatch: Railway
When Vercel is the wrong shape — long-running workers, websocket services that need persistent connections, full container control — Railway is the next step up. We don't run Atlas on it, but it's where we'd move workloads that outgrow serverless. Worth knowing exists, not worth adopting preemptively.
The database: Neon
Atlas runs on Neon — managed Postgres with branching, accessed through Drizzle ORM. Branching matters: each Vercel preview deploy can run against a copy of production data, which is the difference between a preview that proves something and a preview that hopes.
Alternative we considered: Supabase (covered above) and plain RDS-style managed Postgres from a major cloud. Neon's pricing and branching story were cleaner at our size.
Failure mode we hit: cold-start latency on the smallest compute. We pay for a warmer tier to keep response times tight; if you're truly scratch-building, the free tier works, but expect a noticeable first-request lag.
Frontier-market caveat: pick your Neon region to match where your users actually live. For Lagos and Tbilisi traffic, eu-central-1 is the obvious choice; for Bogotá, us-east-2. Region choice is a one-click decision that costs you 100ms if you get it wrong, and you can't undo it without a migration.
Auth and email: Auth.js + Resend
Boring, robust, free or near-free. Auth.js (formerly NextAuth) handles magic-link sign-in against your own database. Resend handles the transactional email. Together they're maybe an afternoon of work, and they get auth-related security mostly right by default — which matters more than ergonomics here.
Alternative we considered: Clerk. Excellent product, opinionated UI primitives, priced for higher-volume products than Atlas needs to be at this stage. Auth.js is open source and the bill stays at zero.
Failure mode we hit: Resend deliverability to Gmail required domain warming on a new sending domain. Budget two weeks of low-volume sends before you expect transactional mail to land reliably.
Frontier-market caveat: both services accept non-US cards more reliably than the AI tools above. Magic-link auth in particular is the right call for markets where SMS deliverability is unreliable.
The AI layer: Claude
Atlas runs Claude — Opus for memo generation, Sonnet for the lighter background work (translation, summarization, coaching prompts). The structured-reasoning quality is the deciding factor: an investment memo is a genre with hard structural requirements (problem, market, comparables, risks, scoring), and Opus is materially better at staying inside that structure without drift.
Alternative we considered: GPT-class and open-weight models. We use them too for narrower jobs. For the memo itself, Opus wins on a quality bar we care about.
Failure mode we hit: non-determinism is real. Two runs on the same input return different memos. We treat that as a feature — investors get slightly different angles — but it forces you to design for variance, validate the JSON you get back, and never ship a workflow that assumes a specific output shape.
Frontier-market caveat: same payment-method issue as Cursor. Anthropic Console has historically rejected some non-US cards; same Wise/Revolut workaround.
The cost ladder
This page intentionally does not list exact dollar figures. Vendor pricing changes; published numbers go stale fast and read as more authoritative than they should. The qualitative shape:
- Cursor — paid, low USD/month per seat. Largest fixed-cost line for a one-person team.
- Vercel — free on Hobby for most projects; Pro is needed for the longer function timeouts Atlas relies on, low USD/month at our scale.
- Neon — free tier covers an MVP; paid tier (single-digit USD/month) for a warm compute is worth it once you have real users.
- Auth.js — free, open source.
- Resend — free tier covers low-volume products; paid plans start at low USD/month.
- Anthropic API — usage-based. The largest variable cost; depends on how often you run Opus and on what input size. Budget for it separately from the fixed-cost lines above.
For a founder on a $25,000 seed — typical for an early-stage frontier-market round, far below YC's ~$500,000 median; the equivalent of roughly 70,000 GEL in Tbilisi, 40 million NGN in Lagos, or 100 million COP in Bogotá at recent rates — the fixed-cost piece of this stack is a rounding error. The variable cost (Anthropic API) is where you want to keep an eye on usage.
When you outgrow this stack
Three honest exits. Regulated data residency (HIPAA-style requirements, EU PII rules that bar US-region storage) — the shape of the stack changes. Sustained scale past about a hundred thousand monthly active users — serverless economics shift, and a Railway-shaped or dedicated-cluster setup starts making sense. Global sub-50ms latency requirements — you need edge replication that's past what we've described. None of those are reasons to delay starting here. They're reasons to know where the exit ramp is when you need it.
What this stack is not
- Not a substitute for distribution. Building cheaply is the easy half. Finding users who care is the hard half, and no tool on this page helps with that.
- Not free. There's a USD cost floor. Cheap, but not zero. If you can't pay any USD subscriptions yet, build with the free tiers only — they're generous.
- Not capital independence. Capital efficiency is not the same thing. You still need runway, and you still need someone willing to write a check.
- Not a closing of the distribution gap. The median YC seed is roughly $500,000. The median frontier-market seed is roughly $25,000. This stack closes the buildgap. It doesn't close the distribution gap. That's a different problem.
Where to take this
If you have an idea — go submit your startupand get an investment memo back in about 90 seconds. That's the most useful next step on this site.
If you want to see what this stack produces, read the memo Atlas wrote about itself — generated by the same stack described on this page. The artifact is the proof.
If you're not a builder but someone forwarded you this page, the explainer at /why is the better starting point.
If you don't have an idea yet, browse curated startup ideas tuned for emerging markets.
No affiliate links on this page. We have no commercial relationship with any vendor named here. If any of them paid us tomorrow to recommend them, this page would not change. If they shut down tomorrow, we'd switch and update this page. The only thing we'd like in return for the recommendation is for you to ship something.