Authentication is one of those things that looks simple from the outside and turns into a multi-week project the moment you start building it properly. Sign-in, sign-up, email verification, password reset, OAuth, route protection — each piece is straightforward on its own, but wiring them all together correctly takes time and care.

Plainform ships with all of it already done. This post walks through exactly how it works, from the moment a user lands on the sign-up page to the moment they are authenticated and using your app.

Plainform Auth Stack

Plainform uses Clerk for identity, custom React forms for the user interface, middleware for route protection, and server-side checks for sensitive pages and actions. The result is a production-ready authentication flow without requiring you to build sessions, email verification, OAuth, or password reset from scratch.

The flow is intentionally split between Clerk and the application: