Arsitektur
Struktur
Section titled “Struktur”src/├── app/ # routing saja: layout, page, loading, error, route handler├── features/ # satu folder per domain bisnis (inti aplikasi)├── components/ # ui/ = primitive design system; providers.tsx├── server/ # hanya server, setiap file diawali import "server-only"├── lib/ # util murni, aman untuk client dan server├── config/ # env.ts (tervalidasi Zod) dan site.ts└── styles/Aturan lapisan
Section titled “Aturan lapisan”ESLint menegakkan aturan ini. Kalau import ditolak, pindahkan kode ke lapisan yang benar, jangan menonaktifkan aturannya.
app/boleh importfeatures/,components/,server/,lib/,config/.features/<x>boleh importcomponents/,server/,lib/,config/, dan fitur lain hanya lewatfeatures/<y>/index.tsataufeatures/<y>/server.ts.components/hanya boleh importlib/.server/hanya boleh importlib/danconfig/.lib/danconfig/tidak import lapisan aplikasi mana pun.
Anatomi fitur
Section titled “Anatomi fitur”features/todos/├── components/ # komponen khusus fitur├── actions.ts # "use server": mutasi├── queries.ts # import "server-only": baca data├── schemas.ts # Zod, sumber kebenaran tipe input├── types.ts├── index.ts # public API aman untuk client└── server.ts # public API server-onlySalin pola features/todos untuk fitur baru.
Konvensi
Section titled “Konvensi”- Default ke Server Component. Tambahkan
"use client"hanya di komponen daun. - Setiap Server Action: validasi dengan Zod, cek otorisasi, tulis data,
revalidatePathataurevalidateTag, lalu kembalikanActionResultdari@/lib/action-result. - Baca env hanya lewat
envdari@/config/env, bukanprocess.env. - Logging di server lewat
loggerdari@/server/logger.
Konvensi lengkap ada di AGENTS.md pada proyek hasil generate. Berkas itu juga dibaca oleh AI
coding agent.