Shipped · In progress · Archived
Projects
Production platforms and experiments. Each project is a source of features and war stories.
Shipped · In progress · Archived
Production platforms and experiments. Each project is a source of features and war stories.
A community-first learning platform for CS students worldwide — curated courses, labs, learning pathways, and a community feed in one place.
CS students — especially those outside well-resourced universities — face fragmented, scattered learning resources. Quality courses, labs, and assignments live across dozens of disconnected platforms, with no structured pathways, no peer community, and no single place to track progress. Students in under-served regions (the platform launches with an initial focus on Gaza) have the least access of all, despite needing it most.
CSHub aggregates curated courses, labs, and assignments into one English-language platform built around three pillars: a community feed for peer Q&A and discussion, instructor-led courses (free and paid, with labs modeled as course rows), and a paid micro-task marketplace where students earn from real work. No university affiliation required — the platform is open to any CS student worldwide.
Built as a Next.js + Supabase full-stack app with no separate backend service. All business logic runs in Server Actions and Route Handlers; authorization is enforced in four defense-in-depth layers (edge middleware → RSC guards → per-action checks → Postgres RLS).
System Architecture
CSHub is a community-first learning platform for Computer Science students worldwide. It pulls curated courses, labs, assignments, Q&A, and guided learning pathways into a single place — with a global audience in mind and an initial focus on supporting students in Gaza. No university affiliation is required.
is_lab = TRUE) rather than a separate entity, keeping the content model unified.proxy.ts middleware), in Server Component layouts, inside every privileged Server Action, and finally at the database via Postgres Row-Level Security.Database types through Server Actions to client props with no serialization hop.