Auth/OIDC provider — TypeScript monorepo. Email, OAuth, Passkeys, MFA, sessions, developer portal, admin panel.
| Package | Tech |
|---|---|
@neo-id/shared |
Zod, TypeScript types, constants |
@neo-id/db |
Prisma 7 + PostgreSQL |
@neo-id/auth-core |
JWT (RS256), bcrypt, OAuth2, WebAuthn, TOTP |
@neo-id/api |
Hono HTTP server (Bun) |
@neo-id/web |
Next.js 16 (SSR, App Router) |
@neo-id/sdk |
JS/TS client SDK + React hooks |
Requires Nix with flakes.
git clone https://github.com/Neo-Open-Source/neo-id.git && cd neo-id
nix run # PostgreSQL + API + WebDevelopment
nix develop # dev shell (tools on PATH, manage servers yourself)
nix run .#reset # wipe DB + node_modules, start freshRequires just, Node.js 24+, pnpm 9+, PostgreSQL 16+.
just setup
just devRun just --list for all commands.
pnpm install
cp .env.example .env
openssl genrsa -out jwt-private.pem 2048
openssl rsa -in jwt-private.pem -pubout -out jwt-public.pem
pnpm db:generate
pnpm db:migrate
pnpm devRequired in .env:
DATABASE_URL # PostgreSQL
JWT_PRIVATE_KEY # RSA private key (PEM)
JWT_PUBLIC_KEY # RSA public key (PEM)
Optional: GOOGLE_CLIENT_ID, GITHUB_CLIENT_ID, RESEND_API_KEY, TURNSTILE_SECRET_KEY.
Vercel — push to GitHub, import on Vercel, set env vars, deploy.
Netlify — push to GitHub, connect repo, set env vars, deploy.