Tech stack
Tools dan library yang dipakai TurboJet — dan mengapa.
Untuk memahami codebase lebih baik, berikut tools yang dipakai TurboJet dan alasannya.
Turborepo
Turborepo mengelola dependensi dan script monorepo. Monorepo memudahkan struktur fitur dan berbagi kode antar app dan paket. Anda bisa menambah app lain nanti dan memakai ulang paket yang ada.
Next.js
Next.js adalah framework React untuk apps/marketing dan apps/docs. Marketing juga menghost API Hono lewat route handler App Router di /api.
Prisma
Prisma adalah ORM untuk @repo/database. Kita mendefinisikan schema, menghasilkan tipe TypeScript, dan migrasi PostgreSQL. Tidak ada jalur Drizzle di kit ini. Lihat Database.
Hono
Hono adalah framework web minimal untuk @repo/api. Router ada di packages/api/src/modules/ dan di-mount dari marketing. Klien RPC typed memakai helper hc Hono — bukan oRPC. Lihat API.
TanStack Query
TanStack Query mengelola server state di frontend. Mutation marketing di apps/marketing/src/mutations/ memanggil klien Hono typed. Lihat Pemakaian di frontend.
Better Auth
Better Auth menggerakkan autentikasi di @repo/auth: tautan ajaib, OTP email, dan OAuth (Google, GitHub, Apple). Anda tetap mengontrol model user dan alur sesi. Lihat Autentikasi.
Tailwind CSS dan shadcn/ui
Tailwind CSS men-styling app. Primitive bersama ada di @repo/ui (shadcn/ui + Radix). Utamakan komponen @repo/ui yang sudah ada daripada install ad hoc.
Fumadocs
Fumadocs menggerakkan apps/docs — konten MDX, pencarian full-text, dan file locale (*.mdx / *.id.mdx). Copy legal marketing memakai React + next-intl, bukan Content Collections.
next-intl
next-intl menangani locale marketing (en / id) dengan localePrefix: "always". Katalog pesan bersama ada di @repo/i18n. Lihat Internasionalisasi.
Resend dan React Email
Email transaksional memakai template React Email di @repo/mail dan Resend untuk pengiriman. Preview dengan pnpm --filter @repo/mail dev. Lihat Email.
Pembayaran
Adapter billing ada di @repo/payments. Provider aktif dipilih di packages/shared/src/features.ts — Mayar secara default, plus Polar, Midtrans, dan DOKU. Lihat Pembayaran.
Storage kompatibel S3
@repo/storage memakai AWS SDK terhadap endpoint kompatibel S3 (Cloudflare R2 atau AWS S3). Lihat Storage.
Vitest dan Playwright
Unit test memakai Vitest (@repo/vitest-config). Panduan E2E Playwright ada di E2E dan Testing.