BuildCycle
// REFERENCE PROJECT — COMMUNITY & EVENTS · MOBILE-FIRST PWA

NāM

Your community in Koh Phangan — warm, quiet, self-hosted.

NāM is the digital backbone of Koh Phangan's first co-creation space: a mobile-first PWA where creatives and founders discover events, find each other in the directory, form groups, read stories and shop. We built the whole platform as a Turborepo monorepo — community app, admin and uptime monitor — all self-hosted on their own server. Ten principles drove every decision: human not corporate, respect attention, AI as invisible infrastructure.

View it live →
NāM
Your community in Koh Phangan
Community Events
Yoga to rave
Real connections
People of the island
Join the community
Industry
Community & events, hospitality
Type
Mobile-first PWA + admin + monitor
Cycle
Full build
Stack
Next.js 16 · React 19 · Drizzle · PostgreSQL/pgvector · Turborepo
// THE BRIEF

NāM didn't want another SaaS onboarding funnel — they wanted something that feels like a warm introduction at a dinner table. The task: a community platform for the island that stays human, keeps members' data under its own control, and still does a lot — events with RSVP and iCal, a member directory, groups, editorial stories, a shop and a clean admin. All mobile-first, all self-hosted. The throughline was a manifesto of ten principles: only build what someone needs today; use AI so it's never noticed; treat members' attention as their scarcest resource.

// WHAT SHIPPED
Events: listing, detail, RSVP with a bloom animation, community submissions and an iCal calendar subscription
Member directory with tag filters, a featured carousel and AI-generated profiles (OpenAI, quietly in the background)
Groups, connections and a chat surface — plus an editorial story reader with its own prose typography
Shop with Stripe and Coinbase Commerce, product and order management
Admin panel: event CRUD, user management, submission review, order tracking, audit log
Self-hosted stack on Hetzner: PostgreSQL/pgvector, MinIO uploads, PM2, nginx, plus an uptime monitor
// THE CYCLE
Phase 1
Briefing & principles
We started by sharpening the manifesto with NāM — ten principles that break every tie. We set scope, data sovereignty and the island context: human, mobile-first, self-hosted. No feature without a real need.
Phase 2
Prototype & design system
A cream canvas, deep-green ink, sunwashed orange, Epilogue over Sometype Mono. We pulled tokens and shared components into a dedicated design system and built the first tangible flow: home, events, RSVP.
Phase 3
Building in the monorepo
A Turborepo with community app, admin and monitor on one PostgreSQL base. Directory with AI profiles, groups, stories, shop with Stripe and Coinbase, MinIO uploads, Better Auth with magic link and Google.
Phase 4
Launch & handover
Deployed to their own Hetzner server: local build plus rsync, PM2, nginx TLS, health checks and an uptime monitor. Handover with a runbook and the principles — NāM can run and extend the stack themselves.
Outcome
0
apps in one monorepo: community, admin, monitor
0%
self-hosted — own data, own infrastructure
NEXT PROJECT
EasyWear