GuildGrad is a full-stack language learning platform that combines courses, community clubs, and language practice in one place. The goal: build an environment where every learner thrives by default.
I took this from concept to production, handling everything from database architecture to payment integration to deployment.
Key Features
Lessons with exercises and completion tracking, including day streak tracking to keep learners engaged
Role-based access control (RBAC) with three user tiers, synced with the payment system
Integrated payments via Paddle (Merchant of Record) for subscription billing
Authentication via Clerk with proper merchant-of-record setup
Community features including voting and proposals so learners shape the platform
Responsive UI for both mobile and desktop
Custom logo animation and navbar behavior for a polished feel
Challenges & How I Solved Them
Database architecture: Designed the SQLite schema to support tiered access, lesson progress, and community features without overcomplicating the data model.
RBAC synced with Paddle: The trickiest part was keeping user roles in sync with subscription status. I built a webhook-driven system so role changes happen in real time when a user upgrades or cancels.
SSR where it matters: Used Next.js server-side rendering strategically for SEO-critical pages and initial load performance, while keeping interactive components client-rendered.
Deployment: Configured SSL, DNS, and Docker for a clean production setup.
A production-ready EdTech platform live at guildgrad.com that combines structured learning, community engagement, and subscription billing into a single cohesive product.
Full-stack language learning platform with courses, community features, RBAC, Paddle payments, and Clerk auth. Built with Next.js, TypeScript, and Docker.