2024
Gokai
gokai.ong ↗Social-impact platform built as a serverless Next.js app on Supabase. No custom backend — lean architecture by design.
- Role
- Full-stack engineering · Solo engineer
- Year
- 2024
- Stack
- Next.js 16React 19TypeScriptTailwind CSS v4Supabase SSRshadcn/uiZodReact Hook Form

§ 02 highlights
- 01Next.js 16 (App Router) with Supabase SSR for auth and managed Postgres — no server of my own to operate.
- 02Forms with React Hook Form + Zod, fully typed end-to-end; UI with shadcn/ui on Tailwind v4.
- 03Deployed on Vercel, no Docker or custom pipeline — simplicity as a competitive advantage for a non-profit.
§ 03 case
01
Context
Gokai is a platform for a social-impact organization. For a non-profit, every engineering hour and every real in infra is expensive. The main architectural decision was deliberately minimalist: zero custom backend, zero custom infrastructure, zero Docker. Contrast with Agapeon (which has its own backend) — this project had different requirements, so the stack had to be different. Pragmatic engineering means knowing when not to scale prematurely.
02
Serverless stack by design
Next.js 16 in App Router with Server Components, hosted on Vercel. All persistence and authentication delegated to Supabase — managed PostgreSQL, Auth with magic links, Row Level Security controlling access. Supabase SSR handles the session-cookie bridge between Next's server components and client components. shadcn/ui + BaseUI + Tailwind v4 for a consistent UI without a custom design system. Result: zero servers to operate.
03
Type-safe forms
React Hook Form + Zod for end-to-end validation. Zod schemas are defined once and generate TypeScript types, client-side validation, and server-side validation in server actions — three uses, one source. Validation errors are displayed inline with preserved accessibility (aria-describedby, aria-invalid). Ensures consistency between what the client sends and what the server accepts, without rule duplication.
04
Outcome
Functional platform in production for a non-profit, with minimal operational cost and near-zero maintenance. The serverless + Supabase model means that if traffic grows 10x, the platform scales automatically without intervention. If traffic shrinks, so does the cost. Delivered solo with 54+ commits — proof that the right architecture for the right context is often the less sophisticated one.