Modern Vercel-style dashboard template with secure role-based routing.
Stored in publicMetadata.role:
adminuserjeeneetbitsat
Access control:
- Admin:
/admin,/dashboard - Non-admin:
/dashboardonly - Unauthorized access to
/adminredirects to/dashboard
- Copy
.env.exampleto.env - Add Clerk keys
- Install and run:
npm install npm run dev
- Sign-up page has a role/track dropdown and does not expose
admin. - Middleware copies selected signup role from
unsafe_metadata.roletopublicMetadata.role. - Admin role should be assigned manually via Clerk dashboard.