← SkillSafe / Routefence

Does this Next.js route put server code in the browser, or client code on the server?

Paste or drop the files behind one App Router route - its page.tsx, layout, loading and error files, route handlers, the 'use server' actions and the components they import - and its package.json. Your browser works out which files render on the server and which ship to the browser, and checks them: a hook or an onClick in a Server Component, a function passed into a Client Component, an async Client Component, a database client or next/headers pulled into the client bundle, params and cookies() read without await on Next.js 15+, Server Actions that write with no authorization check, redirect() swallowed by a try/catch, segment config that is not static, next/router and getServerSideProps left in app/. Free, before you sign in, and nothing is uploaded. Then pick a lane: the audit gives exact edits for each finding, or the fix lane writes the whole fixed files - and the page re-checks both.

The companies, routes and values in the examples are invented. The first three are audits, the last two fix runs; each comes with a saved model reply, so you can see the whole page without signing in or spending a credit.

Paid run

The audit rates the boundaries, data, mutations and conventions, confirms or dismisses every flag below, adds what rules cannot see, and gives exact before/after edits for each finding - which the page applies to your paste and re-checks.

nothing pasted yet
Drop the route's .tsx/.ts files and package.json, or the route folder (they are joined into one paste, each keeps its path; node_modules and .next are skipped), or
Paste the route's files to price the run.

What this does, and what it does not

The check is a reading of the text, not a build: nothing is compiled or run. Each file is lexed so strings, template literals, regex literals and comments are never mistaken for code; every function, component, export, import and JSX tag is found; the imports between pasted files are resolved (relative paths and the @/ alias) so a file is known to render on the server, to be bundled for the browser, or both; and each flag carries the catalogue id it comes from and the line it points at. Checks only see what you paste: whether a component imported from a file you did not paste is a Client Component is outside the check (it is noted, not assumed), and so are next.config, middleware and the parent layouts. next build and next lint remain the ground truth.

The paid lanes see your paste and the page's facts. Every quote and edit they return is checked against your paste, every edit and every returned file is put back and re-checked, and a reply that repeats a credential from your paste is called out. A paste stays in this browser unless you run a lane. Derived from the agent skill @wshobson/nextjs-app-router-patterns by Seth Hobson (wshobson/agents, MIT). Next.js is a trademark of Vercel, Inc.; this app is not affiliated with Vercel. Sources are listed in llms.txt.