Audience
University chapters, national headquarters, and staff administrators.
Role
Founding engineer — sole developer and architect of the v2 workspace, schemas, auth guards, IaC, and chat integration.
Tech stack
- Frontend: TypeScript, React (Vite-powered SPA)
- Backend: NestJS on the Fastify adapter
- Database: Neon Serverless Postgres with Drizzle ORM
- Infrastructure: OpenTofu (IaC), Google Cloud Platform (Cloud Run, Secret Manager), Cloudflare (R2 storage, DNS)
- Auth & realtime: Clerk (authentication) and Stream Chat (messaging)
Architecture
A hybrid multi-repo architecture orchestrated by a central workspace.API child repo
A NestJS + Fastify backend and the shared
@greekcore/db package.Web child repo
Two React SPAs:
member-web (user/officer dashboard) and admin-web (staff portal).Infrastructure child repo
Manages dev, staging, and prod environments with OpenTofu.
Docs child repo
Developer guides and schema documentation.
Key primitives
Drizzle ORM & Neon Postgres
Drizzle ORM & Neon Postgres
A strict two-role database model with Postgres Row-Level Security (RLS) policies enforces multi-tenancy.
Clerk
Clerk
Handles user authentication, token verification, and profile hosting, validated statelessly via JWT signatures on request entry.
Stream Chat SDK
Stream Chat SDK
Backs the real-time messaging system with programmatically synced chapter and board channels.
Onboarding speed
Zero-config onboarding
A single
mise run setup && mise run dev initializes and spins up the database, migration engine, seed script, API backend, and both React web apps.End-to-end type safety
Fully typed API client interfaces are generated directly from backend DTO controllers, giving full type safety across the HTTP boundary.
Read the architecture deep dive
RLS and the two-role split, the owner-bypassing bootstrap path, chat synchronization, and dev orchestration.