Full-stack React + Express + MongoDB. OTP signup, TOTP 2FA with backup codes, password reset, JWT sessions, profile management — all done.
11
API endpoints
8
Production screens
4
Auth flows complete
< 10 min
Setup to first login
Built, tested, documented. Self-host once. Own the code forever.
Details
Version
1.0.0
Last Updated
May 2026
Pricing
Details
Version
1.0.0
Last Updated
May 2026
Pricing
Everything below is already built, tested, and documented. Drop the kit in, configure your .env, ship.
Spend the weeks you just saved on the product no one else can build.
JWT_EXPIRES_INVITE_PROVIDER=mock to run the full client without a backend; every flow works with simulated responsesClient
Server
Shared
@shared path alias# 1. Install dependencies
pnpm install
# 2. Configure environment
cp server/.env.example server/.env
cp client/.env.example client/.env
# 3. Start development (client + server)
pnpm devOpen http://localhost:5173 for the client and http://localhost:3000 for the API.
registration-kit/
├── client/ # React + Vite frontend
│ └── src/
│ ├── api/ # auth + user providers (live & mock)
│ ├── components/
│ ├── pages/
│ └── store/
├── server/ # Express + TypeScript API
│ └── src/
│ ├── controllers/
│ ├── services/
│ ├── models/
│ └── routes/
├── shared/ # DTOs and types shared between client and server
└── package.jsonKey variables in server/.env:
MONGODB_URI=mongodb://localhost:27017/registration-kit
JWT_SECRET=your-secret
JWT_EXPIRES_IN=15d
SMTP_HOST=smtp.mailtrap.io
SMTP_PORT=587
SMTP_USER=...
SMTP_PASS=...Key variables in client/.env:
VITE_API_URL=http://localhost:3000
VITE_PROVIDER=live # or 'mock' for no-backend devRegistration Kit ships under a commercial license with three tiers — Developer, Team, and Extended. See the license page for full terms and what each tier allows.