New blogMaking an AI Agent You Can Trust With Money

★ Internal tool · stack

Best Tech Stack for an internal tool MVP

My opinionated stack for an internal tool MVP, layer by layer, with why I'd pick each tool and what would change my mind. Adjust the answers to fit your team.

  • Runs in your browser
  • No signup
1What are you building?

Used for the cost estimate link below. The stack itself comes from your answers.

2Who's building it?
3Where does it run?
4What does it need?
5Any regulated data?
6How big in year one?
7How tight is the budget?

Your stack

Tech stack for Internal tool

8 layers, picked for your answers. Boring where it should be, so your effort goes into the product.

Cost this out →
  • Frontend

    Next.js (React + TypeScript)

    Server rendering for SEO, file-based routing and the biggest React ecosystem. TypeScript end to end catches whole classes of bugs before users do.

    What would change my mind
    A purely internal tool with no SEO needs, where a plain Vite + React single-page app is simpler.
    Alternative
    Vite + React SPA, or Remix / React Router
  • Backend / API

    Next.js route handlers + server actions

    No separate service to deploy: the API lives next to the UI and shares types with it. Plenty for an MVP and well beyond.

    What would change my mind
    Several clients (mobile, partners) hitting the API, long-running work, or a separate backend team.
    Alternative
    A standalone Node.js + Fastify service
  • Database

    PostgreSQL on Neon

    Relational, transactional and boring. JSON columns cover the semi-structured bits, and pgvector covers embeddings if you add AI.

    What would change my mind
    Truly schemaless, write-heavy event data at very high volume. Add a specialised store for that slice only.
    Alternative
    MySQL, or MongoDB for document-shaped data
  • Auth

    Auth.js (NextAuth)

    Open source, runs in your Next.js app, and covers OAuth plus email login with no per-user fees.

    What would change my mind
    Teams, organisations and SSO requirements, where a hosted provider saves real time.
    Alternative
    Clerk
  • Hosting

    Vercel

    Git push to deploy, preview URLs for every branch and no servers to manage, which is exactly what an MVP team needs.

    What would change my mind
    Long-running processes, heavy compute or strict data-residency requirements.
    Alternative
    Netlify, or Railway for a container
  • Background jobs

    Inngest or Trigger.dev

    Durable background functions with retries, schedules and a dashboard, written in the same TypeScript codebase.

    What would change my mind
    Very high throughput or strict data residency, which points to a queue in your own cloud.
    Alternative
    BullMQ + Redis
  • Analytics

    PostHog

    Product analytics, funnels, session replay and feature flags in one tool, with a generous free tier.

    What would change my mind
    A marketing-only site, where a simple privacy-friendly counter like Plausible is enough.
    Alternative
    Plausible (simple), or Mixpanel
  • Email

    Resend

    Reliable transactional email with a clean API and good deliverability defaults.

    What would change my mind
    Marketing campaigns and newsletters, which belong in a separate tool.
    Alternative
    Postmark

This is the stack I'd pick.

Want me to build on it? I ship MVPs on exactly this kind of stack.

Start with a scoping call
01

What makes an internal tool different

Internal tools sit on top of systems you already have. The architecture is about safe access to those systems, roles and an audit trail, not polish or scale.

02

Risks to plan for

Unsafe write access

One wrong click edits production data. Add roles, confirmations and an audit log.

Slower than the spreadsheet

If it isn't faster than the spreadsheet it replaces, people won't use it.

Source system limits

Rate limits and data quality in existing APIs set the pace of the build.

03

The stack at a glance

With the preset answers for an internal tool (you can change them above), this is the stack layer by layer.

Recommended stack by layer
LayerPickAlternative
FrontendNext.js (React + TypeScript)Vite + React SPA, or Remix / React Router
Backend / APINext.js route handlers + server actionsA standalone Node.js + Fastify service
DatabasePostgreSQL on NeonMySQL, or MongoDB for document-shaped data
AuthAuth.js (NextAuth)Clerk
HostingVercelNetlify, or Railway for a container
Background jobsInngest or Trigger.devBullMQ + Redis
AnalyticsPostHogPlausible (simple), or Mixpanel
EmailResendPostmark

Want the price tag too? Run the same product through the Internal tool cost estimate.

04

Questions founders actually ask

Low-code builder or custom code?
Low-code for simple screens over one database. Custom when the logic is complex, the tool needs AI, or seat pricing gets expensive.
Does an internal tool need a separate backend?
Usually not. Server-side routes in the same app can talk to your databases and APIs safely.
How do I secure an internal tool?
Company SSO, least-privilege roles, and an audit log of every write.
Why does the picker recommend boring technology?
Because an MVP's job is to find out whether people want the product. Mature, widely used tools have answers on the first page of search results, easy hiring and few surprises, so your risk stays in the product rather than the infrastructure.
Is this stack good enough to scale?
For the vast majority of startups, yes. Postgres, a mainstream framework and managed hosting carry companies a long way. When something does need to change, it's usually one layer at a time, and the picker shows what would trigger that change.
05

Stack by product type

06

More from the workbench

Fine print

Tools: on the house.
Engineer: by the hour.

The opinion was free. The implementation is where I come in.

I'm Himanshu, an AI and full-stack engineer. I build MVPs, AI agents and the growth plumbing around them for early-stage startups.