Tech stack for an internal admin tool (2026)
Support team admin panel, designed by StackPrism from one sentence: 6 components, a reason for each, and the live checks that watch them.
The stack
Next.js
Node.js
Clerk
PostgreSQL
Stripe
Sentry
“An internal admin tool for our support team: look up customers, refund orders and edit accounts in our existing Postgres database, with Google Workspace sign-in, role-based permissions and a log of every change.”
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
Support staff sign in through Clerk with their company Google Workspace accounts and land in a Next.js admin dashboard on Vercel. Every action goes through a small Node.js API rather than straight from the browser to the database: the API checks the person’s role, reads and edits customers in the existing PostgreSQL database and issues refunds through Stripe. Keeping every write in one API also gives one place to record who changed what. Sentry reports errors.
Why each piece
All 6 components on the diagram: what each one does, what it talks to, and what stops if it goes down.
Next.js Admin Dashboard
In Vercel
Support admin UI. Calls Node.js API and Sentry (errors). Called by Clerk (sign in).
If it goes down, 1 of 5 components stops working.
Node.js API
In Vercel
Admin policy API. Calls PostgreSQL (queries), Stripe (refunds) and Sentry (errors). Called by Next.js Admin Dashboard.
If it goes down, 2 of 5 components stop working.
Clerk
SSO and sessions. Calls Next.js Admin Dashboard (sign in).
Nothing else on the diagram depends on it.
PostgreSQL
System of record. Called by Node.js API (queries).
If it goes down, 3 of 5 components stop working.
Stripe
In External Services
Refund processor. Called by Node.js API (refunds).
If it goes down, 1 of 5 components degrades.
Sentry
In External Services
Error tracking. Called by Next.js Admin Dashboard (errors) and Node.js API (errors).
If it goes down, 2 of 5 components degrade.
When this stack fits
- You already have the database, and the tool only reads and edits it.
- People need different powers, such as looking up versus refunding, so permissions live in an API, not in the browser.
- A small group of internal users who already have company Google accounts.
When to pick something else
- You need it this week and the screens are standard tables and forms: an internal-tool builder such as Retool connects to the same PostgreSQL with less code.
- Support also needs data from other systems, such as email or a CRM: those connections aren’t on this diagram.
What you need to build this
6 components across 6 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 Admin Dashboard
Support admin UI
npm install next
Backend & APIs1
- Docs
Node.js API
Admin policy API
Data1
- Docs
PostgreSQL
System of record
Auth1
- Docs
Clerk
SSO and sessions
npm install @clerk/nextjs
Payments1
- Docs
Stripe
Refund processor
npm install stripe
Observability1
- Docs
Sentry
Error tracking
npm install @sentry/nextjs
Install
npm install next @clerk/nextjs stripe @sentry/nextjs
SDKs only. Pick your own database driver or ORM.