The indie builder’s AI stack (2026 edition)

Every AI tutorial pretends you should pick the “right” stack from 47 options. After two years of shipping side projects, I have a simpler answer: pick the stack that gets you from idea to live URL in a single weekend. Everything else is Reddit cosplay.

This is the stack I actually use — the IDE, the LLM, the frontend, the database, the email, the hosting — with what each one costs, when it breaks, and what I’d rip out if I had to.

Five rules before the stack

  • Boring beats trendy. Trendy tools have changelogs. Boring tools have docs.
  • Cheap until it isn’t. Free tier or pay-per-use only. No Series-A monthlies on a side project.
  • Default to the API, not the framework. LangChain feels productive for ten minutes; raw fetch calls keep working forever.
  • One database, always. Pick a single store for the year and stop relitigating it.
  • Vendor-locked is fine if it’s fast. Cloudflare Workers will outlive my interest in this project.

Coding assistant: Claude Code (primary), Cursor (when I need a UI)

I write 90% of my code through Claude Code in the terminal. It does what an IDE pair-programmer should do: reads the codebase, makes a plan, edits files, runs the tests, fixes its own mistakes. Most of my sessions are “here’s a feature, here’s the existing code, ship it” and 15 minutes later there’s a working PR.

I keep Cursor around for two cases: when I’m exploring an unfamiliar codebase visually, and when I want inline tab-completion while I’m still figuring out what I want to write. Cursor is brilliant when you don’t know the destination. Claude Code is brilliant when you do.

Cost: Claude Pro ($20/mo) covers Claude Code for solo work. Cursor Pro is $20/mo. I pay for both because the time saved is roughly two orders of magnitude over the cost.

What I’d swap: Nothing right now. The IDE wars are over for me.

LLM: Anthropic Claude (Opus 4.7 for thinking, Sonnet 4.6 for shipping), OpenAI as escape hatch

Default model: Claude Sonnet 4.6. It’s the best price-to-quality ratio on the market right now. ~80% of my API calls go to Sonnet because it’s smart enough for almost everything and 5x cheaper than Opus.

I escalate to Opus 4.7 for two things: prompts where reasoning quality changes the user experience (writing, code review, hard analysis), and the rare task where Sonnet visibly struggles. I route this in code, not in the UI.

// my dumb router, in 10 lines
const MODEL = needsReasoning(task)
  ? 'claude-opus-4-7'
  : 'claude-sonnet-4-6';

I keep OpenAI as a fallback for two narrow cases: realtime audio (their Realtime API still leads) and image generation (gpt-image-1 fits some workflows better than third-party diffusion APIs). I do not run any production prompt traffic through OpenAI by default.

Cost reality check: ~$15/month for a project doing about 50k Sonnet calls and a few hundred Opus calls. Sonnet is the unsung hero of indie AI economics.

Frontend: Next.js + Tailwind, Bun runtime

Next.js because the App Router server components map cleanly to LLM-call patterns: do the model call on the server, stream results to the client, no token-leaking front-end keys. Tailwind because typing CSS class names is faster than naming them. Bun because it starts in 0.1 seconds and bundles in 0.5.

I do not use Tailwind UI, shadcn/ui scaffolding, or the latest Radix patterns. Three reasons: (1) AI assistants emit Tailwind better than they emit anyone else’s components, (2) I want to own my CSS, (3) every minute spent on UI library debates is a minute not spent shipping.

What I’d swap: If I were starting a brand-new SaaS today, I’d look hard at Astro for the marketing site and keep Next.js only for the app. Marketing pages don’t need React.

Edge / backend: Cloudflare Workers

If the work is “take a request, call an LLM, return a response,” it goes on Cloudflare Workers. 50ms cold starts, $5/month for 10M requests, native KV/D1/R2 if I need them, and Hono as the web framework so the routing code looks like Express but ships in a fraction of the bundle size.

For long-running things (anything over 30 seconds), I use Cloudflare’s Durable Objects + alarms, or just punt to a Vercel function. AWS Lambda is fine but the DX is worse and the IAM rabbit hole eats weekends.

Database: Supabase (Postgres + auth + storage in one)

Supabase is the answer for almost every indie AI project. Real Postgres (no ORM gymnastics), Row-Level Security so I can write client-side queries safely, built-in auth with social providers, file storage that doesn’t require a separate S3 bucket. Free tier is generous enough that I’ve never paid for a side project DB.

If I need a vector DB for RAG, I add the pgvector extension to the same Supabase instance. One database. No new bills, no new dashboards.

What I’d swap: SQLite + Turso for projects that don’t need realtime or auth. Single-file local-first DBs are underrated.

Auth: Supabase Auth (or Clerk if it’s social-heavy)

Auth is the place I see indie devs lose the most weekends. Don’t roll your own. Supabase Auth handles email + magic links + Google/GitHub OAuth out of the box. Clerk is the upgrade if you need Slack/Notion-tier polish in the auth UI — their pre-built components save 6-8 hours.

Free tiers cover both up to a few thousand monthly active users. Past that, Clerk gets expensive fast; Supabase scales linearly with the rest of your DB.

Email: Resend

Resend is what an email API should have been a decade ago. Clean docs, modern auth, broadcasts and audiences in the same product, webhooks that just work. The free tier (3k/month) covers transactional for most projects. The $20/mo tier covers a real newsletter.

Postmark is still the gold standard for pure transactional reliability. If your business model depends on the password-reset email landing in 1.2 seconds, use Postmark. For everything else, Resend.

Hosting: Vercel (marketing), Cloudflare Workers (app)

Vercel for the marketing site is non-controversial: it’s the best Next.js host on Earth and they made it. Free tier is enough for any pre-revenue project. The Pro tier ($20/mo) only matters if you’re running ISR at scale.

For the app itself — the part that calls LLMs and serves API responses — I move it to Cloudflare Workers as soon as the project gets real traffic. Same logic, much cheaper, faster cold starts.

Analytics: Plausible (privacy) or GA4 via Google Site Kit (depth)

Plausible if I want a beautiful, privacy-first dashboard for a marketing site (this site uses GA4 for now — cheap habit). GA4 if I need conversion tracking, audience segmentation, or my client wants Google Tag Manager. Set it up via Site Kit and forget about it.

I avoid Mixpanel/Amplitude on side projects. They’re overkill until you have a funnel worth debugging.

Writing & planning: Obsidian, Linear, Excalidraw

Obsidian for drafts and second-brain notes — markdown files in a Git repo, no SaaS dependency. Linear for actual project management because it’s the only tool that disappears when you’re using it. Excalidraw for sketching system diagrams, embedded right into Obsidian via the plugin.

/* the actual monthly cost */

For a project like the Daily AI Brief (~1k subscribers, ~10k monthly visits, daily LLM-generated emails), here’s the real bill:

  • Vercel — $0 (free tier covers it)
  • Cloudflare Workers — $5 (paid plan, 10M requests headroom)
  • Supabase — $0 (free tier still works at this scale)
  • Resend — $20 (50k email/month included)
  • Anthropic Claude API — ~$15 (mostly Sonnet calls)
  • Domain — $1 ($12/year)
  • Cursor + Claude Pro — $40 (those are my dev costs, not the project’s)

Project total: ~$41/month. Anything claiming “you need $500/mo of infra to ship an AI app” is either selling you something or running an enterprise.

/* skip these */

Things you’ll be tempted to add. Don’t. Not until you’ve shipped:

  • LangChain for anything you can do in 10 lines of fetch. Most workflows are: prompt → model → response. You don’t need an abstraction.
  • Vector DBs as separate services. Pinecone, Weaviate, Qdrant Cloud all charge $70+/mo. pgvector on your existing Postgres is free and almost always good enough.
  • Kubernetes. If you’re not at 10k+ users, you don’t need it. Workers + Vercel scale to that anyway.
  • Custom auth. Even if you think you have a special use case, you don’t.
  • No-code AI builders. The lock-in is worse than the time savings.
  • Mixpanel / Amplitude / Posthog (the heavy versions) until you have a funnel worth debugging.

/* what changes for production */

The stack above is for going from idea to first paying user. The day someone pays you, add these (in order):

  1. Error tracking. Sentry free tier. 30 minutes to set up. Don’t debug from logs.
  2. A status page. instatus has a free tier. Customers will ask for it before you think they will.
  3. Rate limiting. Cloudflare WAF or Upstash. Bad actors find you faster than you’d expect.
  4. Backups. Supabase has them. Verify you can restore them. Schedule a monthly drill.
  5. Real secrets management. Move env vars out of .env.local and into Vercel/Cloudflare secrets.
  6. An on-call number. Even if it’s just yours and you mute it at night.

TL;DR

The 2026 indie AI builder stack:

IDE         → Claude Code + Cursor
LLM         → Sonnet 4.6 default, Opus 4.7 for hard
Frontend    → Next.js + Tailwind on Bun
Edge        → Cloudflare Workers + Hono
DB          → Supabase (Postgres + pgvector + auth)
Email       → Resend
Hosting     → Vercel (marketing) + Workers (app)
Analytics   → GA4 / Plausible
Notes       → Obsidian + Linear + Excalidraw

Monthly:    ~$40 for a real product.
Time to ship: a weekend.

The deeper dives in this series go tool-by-tool with real code, real costs, and real trade-offs. Start with whichever piece is currently blocking you below. ↓

Leave a Reply

Your email address will not be published. Required fields are marked *