Reading `FormData` in a Server Action
How to read submitted fields from the FormData argument of a Server Action: get, getAll, Object.fromEntries, and the $ACTION_ caveat.
Full-stack React framework
How to read submitted fields from the FormData argument of a Server Action: get, getAll, Object.fromEntries, and the $ACTION_ caveat.
Validate form fields inside a Server Action with Zod: define a schema, safeParse the fields, and return field errors to the form.
Why a Server Action form submits before JavaScript loads, how the browser posts it as plain HTML, and what changes in Client Components.
How to use the useFormStatus hook in a Next.js form to disable a submit button while a Server Action runs, and how to add a success state.
How to accept file uploads in Next.js: read a File from FormData in a Server Action or a Route Handler, and choose the right one for the job.
How to split a long form into steps in the Next.js App Router: track the step, keep fields mounted with the hidden attribute, and submit once.
Combine React Hook Form with a Next.js Server Action: register fields for client-side validation and pass the action to the form component.
How to send visitors to different routes based on a cookie, a request header, or the location your host reports, using the proxy file and config conditions in the Next.js App Router.
The proxy file can add headers in two directions: forward to your server code, or back to the browser. They use different APIs, and mixing them up leaks data or breaks responses.
The App Router has no built-in i18n config. Build locale routing yourself with a dynamic segment, a proxy redirect that reads Accept-Language, and prerendered locales.
What the trailingSlash option does, the permanent redirect it produces in both directions, why the choice matters for search engines, and what else in your config it changes.
Two failures that look like nothing is happening. Here is the single request that identifies a redirect loop, and the checklist for a proxy file that silently never executes.