TurboJet

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.

Di halaman ini