Key decisions I made:
- Bitmap-based view tracking - tracks actual viewing/skipping patterns, not just "completed/incomplete"
- Reusable date-based content - courses with specific dates can be duplicated without manually updating every date reference
- Granular nested permissions - fine-grained access control that works naturally with hierarchical content structure
- Caption-powered search - search video transcripts and jump directly to the timestamp
- Live session attendance that handles all edge cases (entry/exit/re-entry) without needing server-side exception handling
These choices solved real pain points I experienced. For example, most LMS platforms either over-track (too much DB overhead) or under-track (just yes/no completion). The bitmap approach gives detailed analytics efficiently.
Built with Django, SolidJS, PostgreSQL, OpenSearch. MIT licensed. Quick start: sh dev.sh up
Would love feedback from the community!