// production-readiness audit · Next.js / React

A senior engineer reviews your Next.js app before you put real users behind it.

The App Router makes it easy to blur the line between server and client — and to ship a secret or an unguarded route without noticing. A real engineer reads your actual code and tells you what’s exposed.

Read-only — we can't change, push or delete anything. Your code is never executed, and deleted after the audit.

01What we see most in Next.js apps

The Next.js mistakes that ship straight to production.

Next.js failure modes cluster around the server/client boundary and what runs with full privileges. The build passes either way — these don’t show up until someone hits the endpoint directly.

Critical

Secrets behind NEXT_PUBLIC_ — or imported into a client component

Anything prefixed NEXT_PUBLIC_ is inlined into the browser bundle. So is any env var imported, even transitively, into a "use client" component. A Stripe, database or API secret on that path is public the moment you deploy.

check › Grep for NEXT_PUBLIC_ on anything not meant to be public, and check what your client components import.

Critical

Route handlers and server actions with no auth check

An app/api/* route or a server action runs on the server with full privileges and is callable by anyone who knows the URL. Hiding the button in the UI does not protect it — each one needs its own authentication and authorization check.

check › Does every route handler and server action verify the session before doing work?

Critical

Auth enforced only in middleware.ts

Middleware matchers are easy to misconfigure, and matched paths can slip through. Auth that lives only in middleware leaves a single point of failure — it belongs at the data-access layer too.

check › If middleware is the only gate, one wrong matcher = an open route.

Watch

Server actions that trust their input

Server actions feel like local function calls but accept arbitrary client input. Without validation and an ownership check they become an injection or IDOR path — editing a record by passing someone else’s id.

check › Are action inputs validated, and is the acting user authorized for that record?

Watch

No rate limiting on route handlers

Auth, signup and any third-party-cost endpoint are open to brute force and runaway billing when nothing throttles them.

check › Is there rate limiting on auth and on any endpoint that costs money to call?

These are the patterns, not a checklist run against your repo. The audit reads your actual Next.js code and tells you which of these are really there — prioritized, critical first. Or try the free 2-minute self-check →

02What the $49 audit covers

A full production-readiness read — not just Next.js specifics.

The stack-specific bugs above are where we start. The review covers six areas in total, delivered as a prioritized report with an honest fix estimate for each.

  • 01
    Securitysecrets, auth, exposed endpoints
  • 02
    Data & multi-tenancyaccess rules, tenant isolation
  • 03
    Scalabilityqueries, indexes, N+1s, caching
  • 04
    Cloud & infrastructureenv separation, secrets, backups
  • 05
    CI/CD & deploymentpipeline, staging, safe rollback
  • 06
    Intentdoes it do what you meant it to

See what each area covers in detail →

04Next.js questions
Q1 App Router or Pages Router?
Both. The review reads your actual routing, server/client boundaries and data access — the failure modes differ slightly but the read is the same.
Q2 Do you review the database too?
Yes. Next.js apps usually sit on Supabase, Postgres, Firebase or Prisma, and the most dangerous bugs are at that boundary — so the data layer is part of the review.
// Next.js / React

Have a senior engineer read your Next.js app before your users do.

One real engineer, a prioritized report within 48 hours, and a 15-minute call. $49, one-time.

Get your Next.js audit $49

Money-back guarantee · read-only · never executed · deleted after the audit