Next.js och MongoDB, där datalagret är produkten.
En monorepo där appen bara anropar ett datalager. Där finns den enda MongoDB-klienten, alla scheman, varje fråga och behörigheten — med ägarskap inbyggt i själva filtret.
Använd den när
Du startar en Next.js-produkt på MongoDB och vill ha inloggning, frågor per användare, index och migreringar gjorda rätt från första dagen.
Kör du Postgres och vill ha bakgrundsjobb? template-next-supabase i stället →Det här ingår
Färdigt från start.
En klient
MongoClient skapas på ett enda ställe, och databasen exporteras aldrig — appen får bara funktioner.
Ägarskap i filtret
Varje funktion tar en session, och ägarskapet ligger i själva frågan, inte i en if efteråt.
Inloggning
Auth.js v5 med kod via e-post (Resend), och GitHub eller Google om du lägger till nycklarna.
Tre former per entitet
Indata (opålitlig), lagrat dokument och det som lämnar lagret — så en ny hemlig fält inte läcker av sig själv.
Index och migreringar
Index deklareras i kod och körs från CI, migreringar spåras. Aldrig vid appstart.
Tester utan kluster
Datalagret testas mot en MongoDB i minnet med Vitest.
Principerna
Reglerna den håller.
- 1
En klient, ett ställe för samlingsnamn.
- 2
Databasen exporteras inte — bara funktioner och typer.
- 3
Varje funktion tar en session, aldrig ett användar-id.
- 4
"use server" hör hemma i actions.ts, aldrig i datalagret.
- 5
Sidindelning med markör och ett tak. Ingen skip.
- 6
Index körs från CI, aldrig när appen startar.
Kom igång
pnpm install
cp .env.example apps/web/.env.local
cp .env.example packages/db/.env
# set MONGODB_URI, MONGODB_DB, AUTH_SECRET
pnpm db:migrate
pnpm db:indexes
pnpm devStruktur
packages/db/ @ketryon/db — the MongoClient, the schemas, every query
packages/auth/ @ketryon/auth — Auth.js v5: email code + OAuth
apps/web/ Next.js 16 app; calls the DAL, owns no database codeMiljövariabler
- MONGODB_URI
- MONGODB_DB
- AUTH_SECRET
Bara tre krävs. Utan en Resend-nyckel skrivs inloggningskoden ut i serverloggen under utveckling.
Bra att veta
- Kräver Node 20.19 eller senare, pnpm 10 och en MongoDB du kan nå.
- Typkontroll och lint passerar med Next 16.4, React 19.3, MongoDB-drivrutin 7.7 och Zod 4.6.
Byggd med
- Next.js 16
- React 19
- MongoDB driver 7
- Auth.js v5
- Zod 4
- Resend
- Tailwind CSS 4
- Vitest
Fler mallar
template-next-supabase
MITNext.js och Supabase, där ett typat datalager äger varje fråga och varje behörighetskontroll.
Next.js 16 · React 19 · Supabase
Läs mer →template-monorepo
MITEn webbapp i Next.js, ett API i Express och bakgrundsjobb i Inngest som delar ett databasschema.
Next.js 15 · React 19 · Clerk
Läs mer →template-backend
MITEtt REST-API i Express och TypeScript med inloggning, Postgres, Redis och validering på plats.
Express 5 · TypeScript · Clerk
Läs mer →template-gateway
MITEtt lager i Next.js mellan dina appar och ett befintligt API, där API-nyckeln stannar på servern.
Next.js 15 · React 19 · TypeScript
Läs mer →template-react-native
MITEn app för iOS och Android i Expo med navigering, ljust och mörkt tema och en typad API-klient.
Expo SDK 54 · React Native 0.81 · React 19
Läs mer →
Låt oss bygga
nästa sak.
Du pratar med mig, inte med en säljare. Första samtalet är gratis.
— Kenny
psst, det tar 15 min
Skriver du svarar jag samma vardag.