DEV Community

Cover image for Building eCourses: A Community‑First LMS SaaS (and Why You Should Build in Public)
Ateeb Hussain
Ateeb Hussain

Posted on

Building eCourses: A Community‑First LMS SaaS (and Why You Should Build in Public)

I’m building a Learning Management System SaaS called eCourses, designed specifically for small communities and independent educators who feel priced out or over‑engineered by existing platforms.

This post is the first in a series where I’ll walk through the architecture, decisions, and “lessons learned” from shipping an LMS from scratch — in public, open source, and on a tight budget.

Why I Built eCourses

Most LMS platforms are either:

  • Too expensive for solo creators and small communities.
  • Too complex for simple “course + modules + lessons + live sessions” workflows.
  • Too rigid to let instructors experiment with their own teaching style.

I wanted something that:

  • Feels native to communities (not just single instructors).
  • Scales technically and financially under $10/month at reasonable load.
  • Lets me experiment with API design, caching, and complex state in a real product context.

That’s how eCourses started — as a personal itch, and now as a real product and portfolio project.


What eCourses Is (Right Now)

At its core, eCourses is:

  • A community‑scoped LMS SaaS with communitySlug‑based routing.
  • An admin panel where instructors can:
    • Create, edit, and soft‑delete courses (with image upload via ImageKit).
    • Reorder modules and lessons with drag‑and‑drop (optimistic UI, two‑pass index transactions).
    • Assign non‑student members as instructors.
  • A structure that prepares the ground for:
    • Public course pages.
    • Video upload and playback.
    • Live sessions and recordings.
    • Student progress tracking and analytics.

The live version is currently deployed at https://ecourses-sigma.vercel.app, and the whole stack is open source under the MIT license.


The Big Picture: Tech Stack

Right now the stack is optimized for type‑safe, fast iteration rather than maximal feature‑bloat:

Layer Tech / Pattern
Framework Next.js 15 (App Router + Turbopack)
Language TypeScript
Auth Clerk
Database PostgreSQL
ORM Prisma v7
Cache Upstash Redis
File Storage ImageKit
Frontend UI Tailwind CSS v4 + shadcn/ui + dnd‑kit, nuqs, React Hook Form + Zod
State (HTTP) TanStack Query v5 (React Query v4 in browser)

This gives me strong typing, rapid iteration, and a clear path to a mobile‑ready backend later.

If You Want to Follow Along

Right now eCourses is:

You can:

  • Star / fork the repo and open issues or PRs.
  • Comment here with questions or suggestions (especially around LMS‑specific UX, API patterns, or caching).
  • Follow as I keep shipping and documenting — if you’ve ever wondered what a “real‑sized” LMS architecture looks like at SaaS‑scale, this is a good place to watch it evolve.

Top comments (0)