
A practical 2026 guide to choosing databases, auth, payments, storage, email, notifications, CAPTCHA, support chat, analytics, and more for indie developers.
Choosing a tech stack as an indie developer is not about finding the most advanced tool in every category. It is about picking a set of services that lets you launch, charge money, support users, and keep your future options open.
In 2026, the hard part is not that we lack choices. The hard part is that every module has three or four very good choices, each with a different pricing model, lock-in profile, and operational burden. Database, auth, payments, storage, email, notifications, CAPTCHA, support chat, analytics, background jobs, and deployment all look simple until you need them to work together.
That repeated SaaS plumbing is exactly why templates like ShipNext exist: not to replace product thinking, but to remove the part of every launch where you wire the same foundations again.
This guide is written for solo builders, small teams, AI SaaS founders, micro-SaaS makers, and developer-tool builders who want a practical stack for 2026.
Before choosing providers, use a few constraints:
Pricing and free tiers change often. The notes below are based on public provider pages checked as of June 2026. Treat them as selection guidance, then verify current pricing before launch.
For most indie SaaS projects, start with Next.js unless you have a strong reason not to. It gives you React, routing, server components, API routes, metadata, and deployment patterns that are widely understood.
| Option | Best For | Free-Tier Notes | Indie Verdict |
|---|---|---|---|
| Next.js + Vercel | Fastest path for React SaaS, marketing pages, dashboards, and API routes | Vercel Hobby is useful for personal prototypes; commercial apps should budget for Pro | Best default for most indie SaaS launches |
| Cloudflare Pages + Workers | Low-latency static and edge-native apps | Strong free allowances across Pages and Workers, with product-specific limits | Best when you want Cloudflare-first infrastructure |
| Netlify | Static-heavy marketing sites and content products | Free starter tier is good for prototypes and low-traffic sites | Solid for content-first products |
| Railway | Apps that need always-on services, containers, or quick databases | Usually credit or usage based rather than a permanent large free tier | Great for side projects that need server processes |
Best default: Next.js on Vercel for normal SaaS. Cloudflare Pages if the product is mostly edge functions, static content, D1, R2, and Turnstile.
Your database choice is the most important stack decision. For paid SaaS, PostgreSQL is still the safest default: transactions, relational modeling, indexes, migrations, JSON fields, and a huge ecosystem.
| Option | Best For | Free-Tier Notes As Of June 2026 | Tradeoffs |
|---|---|---|---|
| Neon Postgres | Serverless Postgres, branching, preview environments, SaaS apps | Free plan includes 100 CU-hours, 0.5 GB storage, and 5 GB egress monthly | Excellent indie default, but watch compute and storage as usage grows |
| Supabase | Postgres plus auth, storage, realtime, and dashboard in one platform | Free plan includes 2 active projects, 50,000 monthly active users, 5 GB egress, and 1 GB file storage | Great all-in-one platform, but you may adopt more Supabase-specific features over time |
| Turso | SQLite-style edge apps, read-heavy tools, small global products | Free tier is useful for small projects and experiments | Not the first choice for complex transactional SaaS billing data |
| Cloudflare D1 | Cloudflare-native apps using Workers and Pages | Workers Free includes 5 million rows read per day, 100,000 rows written per day, and 5 GB total storage | Very attractive inside Cloudflare, less portable than plain Postgres |
| Self-hosted Postgres | Developers who want maximum control | Free software, but you pay for the server and your own operations | Cheap at first, expensive when you become your own DBA |
Best default: Neon Postgres for independent SaaS. Supabase if you want a broader product platform. D1 or Turso if your product is intentionally edge-first and simpler in data shape.
The ORM should make your database easier to use without hiding too much of it.
| Option | Best For | Free-Tier Notes | Tradeoffs |
|---|---|---|---|
| Drizzle | Type-safe SQL, simple schema ownership, lightweight SaaS apps | Open source, no provider fee | Best indie default if you like SQL and want control |
| Prisma | Larger teams, rich ecosystem, schema-first workflows | ORM is open source; hosted services have their own plans | Great DX, but heavier and more abstracted |
| Raw SQL | Performance-sensitive or very small apps | Free | Clean for small modules, harder to scale across a larger codebase |
Best default: Drizzle. It keeps you close to SQL, works well with Postgres and SQLite, and does not force your app into a heavy runtime.
Authentication is deceptively expensive to build well. Password reset, email verification, magic links, OAuth, sessions, rate limits, organizations, and account linking all become product surface area.
| Option | Best For | Free-Tier Notes As Of June 2026 | Tradeoffs |
|---|---|---|---|
| Better Auth | Developers who want auth inside their own app and database | Open source; cost is your database, email, and hosting | Best control and portability, but you own more implementation details |
| Clerk | Fastest polished auth UI, B2B SaaS, organizations | Free for the first 50,000 monthly retained users and 100 monthly retained organizations | Very fast to launch, but more vendor-coupled |
| Supabase Auth | Apps already using Supabase | Included in Supabase free plan with 50,000 monthly active users | Best if Supabase is already your backend |
| Auth0 / Kinde | Enterprise-facing apps, SSO, compliance-heavy auth | Free tiers exist, but paid plans matter once B2B requirements grow | Powerful, often more than a solo SaaS needs on day one |
Best default: Better Auth if you want ownership and template-friendly architecture. Clerk if auth UI speed is more important than control.
Payments are not just checkout buttons. You need product IDs, price IDs, subscriptions, invoices, billing portals, webhooks, entitlements, refunds, taxes, trials, coupons, and failed payment handling.
| Option | Best For | Free-Tier Notes | Tradeoffs |
|---|---|---|---|
| Stripe | SaaS subscriptions, usage-based billing, invoices, metered billing | No typical monthly platform fee for basic payment processing; you pay per successful transaction | Best default for US-first or startup-style SaaS |
| Lemon Squeezy | Digital products, templates, simple subscriptions, global tax handling | Transaction-based Merchant of Record model | Easier global selling, less flexible than raw Stripe |
| Paddle | Global SaaS with tax, VAT, invoices, and compliance handled by MoR | Transaction-based Merchant of Record model | Strong for international SaaS, heavier onboarding |
| Polar | Developer products, open-source monetization, sponsorship-like flows | Transaction-based; check current fees before launch | Interesting for devtools and creator-led products |
Best default: Stripe if you are comfortable owning tax and compliance setup or selling in a simpler market. Paddle or Lemon Squeezy if Merchant of Record support matters more than maximum billing flexibility.
Use object storage for avatars, exports, uploaded files, generated images, PDFs, audio, videos, and any asset that should not live in your database.
| Option | Best For | Free-Tier Notes As Of June 2026 | Tradeoffs |
|---|---|---|---|
| Cloudflare R2 | S3-compatible storage with low egress anxiety | Free tier includes 10 GB-month storage, 1 million Class A operations, 10 million Class B operations, and free egress | Best indie default for S3-compatible storage |
| AWS S3 | Mature AWS workloads, compliance, enterprise integrations | AWS Free Tier commonly applies to new accounts for the first 12 months, with limited S3 storage and requests | Battle-tested, but pricing is more complex |
| Supabase Storage | Apps already using Supabase | Free plan includes 1 GB file storage | Convenient, but tied to the Supabase platform |
| UploadThing | Fast uploads in Next.js apps without building S3 flows | Free plan includes a small app storage allowance, currently 2 GB | Excellent DX, less portable than raw S3-compatible storage |
Best default: Cloudflare R2 with an S3-compatible adapter. It keeps costs predictable and lets you move between R2, S3, MinIO, and other compatible providers.
Separate transactional email from marketing email. Transactional email is for verification, password reset, receipts, magic links, and account alerts. Newsletter email is for product updates and audience building.
| Option | Best For | Free-Tier Notes As Of June 2026 | Tradeoffs |
|---|---|---|---|
| Resend | Modern transactional email, React Email templates, developer DX | Free plan includes 3,000 emails per month and 100 emails per day | Best indie default for transactional email |
| Postmark | High deliverability transactional email | Free trial volume is limited; paid plans are the real path | More expensive, very dependable |
| SendGrid | Larger email programs, marketing plus transactional | Free plan is usually enough for small testing volume | Powerful, but the product surface is heavier |
| Mailgun | Developer email APIs, routing, flexible sending | Free trial or evaluation allowances change over time | Good API, less beginner-friendly than Resend |
Best default: Resend for transactional email. Add a dedicated newsletter tool only when you have a real audience workflow.
Team notifications are not the same as user notifications. At launch, your team needs to know when a user signs up, pays, upgrades, cancels, hits an error, or contacts support.
| Option | Best For | Free-Tier Notes | Tradeoffs |
|---|---|---|---|
| Discord, Slack, Telegram webhooks | Founder alerts and lightweight ops events | Generally free at small scale within each platform's limits | Best starting point, minimal product complexity |
| Novu | Multi-channel notification infrastructure | Open-source path and cloud tiers are available | Useful when user-facing notifications become complex |
| Knock | Production in-app notifications, preferences, batching | Developer/free tiers vary by plan | Strong product, not necessary for most v1 launches |
| Custom notification table | Apps that need exact control | Free except database cost | Easy to start, easy to underbuild |
Best default: Webhooks to Telegram, Discord, or Slack first. Add Novu or Knock only when notifications become a user-facing product system.
You probably do not need CAPTCHA everywhere, but you do need protection around sign-up, sign-in, magic links, waitlists, contact forms, and abuse-prone APIs.
| Option | Best For | Free-Tier Notes | Tradeoffs |
|---|---|---|---|
| Cloudflare Turnstile | Privacy-friendly CAPTCHA replacement | Free to start, no credit card required | Best default for indie apps |
| hCaptcha | CAPTCHA replacement with broad adoption | Free options exist for many use cases | More visible challenge behavior than Turnstile in some flows |
| Google reCAPTCHA | Teams already using Google Cloud security tooling | Free allowances exist, then Google Cloud pricing applies | Familiar, but privacy and UX tradeoffs matter |
| Friendly Captcha | Privacy-focused paid CAPTCHA | Paid product | Good for privacy-sensitive European products |
Best default: Cloudflare Turnstile. It is simple, free to start, and easy to place on auth and contact flows.
Do not overbuild support. A small SaaS usually needs a visible way to talk to the founder, collect bug reports, and answer pre-sale questions.
| Option | Best For | Free-Tier Notes | Tradeoffs |
|---|---|---|---|
| Crisp | Indie SaaS live chat, shared inbox, lightweight support | Free plan exists forever; paid plans unlock more automation and team features | Best indie-friendly default |
| Tawk.to | Free-first live chat | Free with no limits on agents, chat volume, or sites, according to its pricing page | Very generous, but branding and add-ons may matter |
| Chatwoot | Open-source support inbox, self-hosting | Self-hosted option is free software; cloud is paid | Best if you want control and can operate it |
| Intercom | Later-stage SaaS support, automation, sales, AI support | Paid product, not a typical free indie default | Powerful after you have enough users to justify it |
Best default: Crisp. Use Tawk.to if free live chat is the top priority. Move to Intercom only when support has become a revenue or retention function.
You need two kinds of visibility:
| Option | Best For | Free-Tier Notes As Of June 2026 | Tradeoffs |
|---|---|---|---|
| PostHog | Product analytics, events, funnels, feature flags, recordings | Free monthly tiers include 1 million events for product analytics | Best indie default if you want product insight and experiments |
| Plausible | Simple privacy-friendly web analytics | Hosted product is paid after trial; self-hosting is possible | Great for marketing analytics, less of a product analytics suite |
| Sentry | Error tracking, tracing, replay, release health | Free Developer plan exists forever with limited events and replays | Best default for error monitoring |
| Better Stack / Axiom | Logs, uptime checks, incident visibility | Free tiers exist for small projects | Add when logs and uptime alerts matter |
Best default: PostHog for product analytics and Sentry for errors. Add log management when your app has meaningful production traffic.
The moment you send emails, process webhooks, call AI APIs, generate files, or sync data, you need background work. Do not hide long-running jobs inside request handlers.
| Option | Best For | Free-Tier Notes As Of June 2026 | Tradeoffs |
|---|---|---|---|
| Inngest | Event-driven workflows, retries, scheduled jobs | Free tier includes 50,000 executions and 5 concurrent steps | Best default for serverless SaaS workflows |
| Trigger.dev | Developer-friendly background jobs and long-running tasks | Free tiers exist for development and small usage | Great DX, especially for TypeScript apps |
| Upstash QStash and Redis | Queues, rate limits, Redis, scheduled HTTP jobs | Redis free tier includes 256 MB data size and 500,000 commands per month | Best lightweight infrastructure add-on |
| Native cron on your host | Simple scheduled jobs | Usually included within platform limits | Fine for small tasks, weak for retries and observability |
Best default: Inngest for product workflows. Upstash Redis for rate limits, queues, caching, and small distributed state.
Here are the combinations I would choose in 2026.
Use this when you are building a normal SaaS, AI tool, paid dashboard, productivity app, or micro-product.
| Module | Choice |
|---|---|
| Framework | Next.js |
| Hosting | Vercel |
| Database | Neon Postgres |
| ORM | Drizzle |
| Auth | Better Auth |
| Payments | Stripe |
| Storage | Cloudflare R2 |
| Resend | |
| CAPTCHA | Cloudflare Turnstile |
| Support | Crisp |
| Analytics | PostHog |
| Errors | Sentry |
| Jobs | Inngest or Upstash |
This stack is portable, practical, and not too expensive before revenue. It also maps cleanly to a modular codebase because each provider can be wrapped behind a small integration layer.
Use this when you want someone else to handle more of the seller-of-record burden.
| Module | Choice |
|---|---|
| Base | Same as the default indie SaaS stack |
| Payments | Paddle or Lemon Squeezy instead of Stripe |
| Billing logic | Keep local entitlement records even when the provider owns invoices |
This stack is especially useful for templates, downloadable products, global SaaS, and solo founders who do not want tax complexity to dominate the first launch.
Use this when your product is content-heavy, edge-first, or very cost-sensitive.
| Module | Choice |
|---|---|
| Hosting | Cloudflare Pages and Workers |
| Database | D1 for Cloudflare-native apps, or Turso for portable SQLite-style edge data |
| Storage | Cloudflare R2 |
| CAPTCHA | Cloudflare Turnstile |
| Analytics | PostHog or Plausible |
| Jobs | Queues, Cron Triggers, or Upstash depending on workflow needs |
This stack can be extremely efficient, but it works best when you intentionally design for the edge. If you are building complex billing, reporting, and admin workflows, Postgres is still usually simpler.
ShipNext is closest to the default indie SaaS stack: Next.js, TypeScript, Drizzle, Better Auth, payments, Resend email, S3-compatible storage, CAPTCHA, notifications, docs, blog, legal pages, and support-chat patterns are already shaped as modules. That makes it a good starting point when you want the practical SaaS foundation assembled before you add your product-specific logic.
If you are not sure, choose this:
Next.js + Vercel + Neon Postgres + Drizzle + Better Auth + Stripe + Cloudflare R2 + Resend + Turnstile + Crisp + PostHog + Sentry.
That stack gives you a strong launch path without locking every part of your app into one platform. It lets you build a serious product, charge customers, send emails, accept uploads, defend sign-up flows, talk to users, monitor errors, and learn from product analytics.
The best stack is the one that removes enough friction for you to ship. If you want this kind of foundation already assembled, ShipNext is a sensible place to start: use the template for the repeatable SaaS infrastructure, then spend your energy on the product only you can build.