Skip to main content
GreekCore is a multi-repo platform for Greek-life organizations (fraternities and sororities). It orchestrates the member directory, executive governance, financial operations, and real-time communications, with bulletproof database-level tenant isolation and automated multi-environment provisioning.

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

A strict two-role database model with Postgres Row-Level Security (RLS) policies enforces multi-tenancy.
Handles user authentication, token verification, and profile hosting, validated statelessly via JWT signatures on request entry.
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.
Last modified on June 22, 2026