Hoppa till innehållet

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.

Öppna på GitHubMIT-licens · fri att använda

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. 1

    En klient, ett ställe för samlingsnamn.

  2. 2

    Databasen exporteras inte — bara funktioner och typer.

  3. 3

    Varje funktion tar en session, aldrig ett användar-id.

  4. 4

    "use server" hör hemma i actions.ts, aldrig i datalagret.

  5. 5

    Sidindelning med markör och ett tak. Ingen skip.

  6. 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 dev

Struktur

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 code

Miljö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

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.