Tech stack for a micro-SaaS (2026)
Website uptime and SSL monitor, designed by StackPrism from one sentence: 8 components, a reason for each, and the live checks that watch them.
The stack
Next.js
- Inngest
Node.js
Supabase
Resend
Stripe
Clerk
Sentry
“A micro-SaaS that checks a list of websites every few minutes and emails the owner when one goes down or its SSL certificate is about to expire. Solo founder, one paid plan, and a public status page for each customer.”
Their answers on the constraints step
- Budget
- Up to ~$50/month
- Time to launch
- Weeks
- DevOps
- No DevOps experience
Make it yours. Open this stack in the editor to check its health, harden it and hand it to your coding agent. No sign-up, nothing to generate.
Start from this stackSelect a component to see what it does and what it connects to, or pick one above to see what breaks if it goes down. Pinch or use the buttons to zoom.
Why this stack
Inngest Functions do the core of the product: scheduled jobs that check each site, store the results in Supabase PostgreSQL and send an alert through Resend when a site goes down or a certificate is close to expiry. The Next.js app on Vercel is the marketing site and the dashboard, and it signs people in with Clerk. A small Node.js API, also on Vercel, owns the account data and the Stripe subscription. Everything is managed, so one founder with no DevOps experience can run it on a small budget.
Why each piece
All 8 components on the diagram: what each one does, what it talks to, and what stops if it goes down.
Next.js App
Runs on Vercel
Marketing and dashboard. Calls Clerk (signs in), Node.js API and Sentry (errors).
Nothing else on the diagram depends on it.
Inngest Functions
Runs on Vercel, in Backend Services
Scheduled jobs. Calls Supabase PostgreSQL (stores), Sentry (errors) and Resend (emails).
Nothing else on the diagram depends on it.
Node.js API
Runs on Vercel, in Backend Services
App control plane. Calls Supabase PostgreSQL (writes), Sentry (errors), Resend (sends) and Stripe (billing). Called by Next.js App.
If it goes down, 1 of 7 components stops working.
Supabase PostgreSQL
Product system of record. Called by Node.js API (writes) and Inngest Functions (stores).
If it goes down, 3 of 7 components stop working.
Resend
In External Services
Email delivery. Called by Node.js API (sends) and Inngest Functions (emails).
If it goes down, 2 of 7 components degrade.
Stripe
In External Services
Billing platform. Called by Node.js API (billing).
If it goes down, 1 of 7 components degrades.
Clerk
In External Services
Authentication service. Called by Next.js App (signs in).
If it goes down, 1 of 7 components stops working.
Sentry
Error monitoring. Called by Node.js API (errors), Next.js App (errors) and Inngest Functions (errors).
If it goes down, 3 of 7 components degrade.
When this stack fits
- The product is a scheduled job plus a dashboard, and the job matters more than the UI.
- You run it alone and want nothing to patch, scale or wake up for.
- One paid plan through Stripe and transactional email are all the business needs.
When to pick something else
- Checks must run from several regions to rule out false alarms: one scheduler can’t do that alone, so you’ll need workers in more than one region.
- Checks every few seconds: cron schedules work in minutes, so you’d run a long-lived worker instead.
What you need to build this
8 components across 7 areas of the stack.
Build it with your AI agent
Hand the stack to Claude Code, Codex, Cursor or any coding agent as a brief: how it connects, install steps and a build plan.
Frontend1
- Docs
Next.js App
Marketing and dashboard
npm install next
Backend & APIs2
- Docs
Node.js API
App control plane
Inngest Functions
Scheduled jobs
Data1
- Docs
Supabase PostgreSQL
Product system of record
npm install @supabase/supabase-js
Auth1
- Docs
Clerk
Authentication service
npm install @clerk/nextjs
Payments1
- Docs
Stripe
Billing platform
npm install stripe
Email & messaging1
Resend
Email delivery
Observability1
- Docs
Sentry
Error monitoring
npm install @sentry/nextjs
Install
npm install next @supabase/supabase-js @clerk/nextjs stripe @sentry/nextjs
SDKs only. Pick your own database driver or ORM.