10 of 10
Platforms
Tausif1337.dev CMS + LMS.
Two subsystems on one personal platform: a markdown blog CMS with newsletter export, and an LMS with course, module, and lesson hierarchy plus progress tracking. Supabase RLS underneath both.
- Built at
- TechnicalBind
- Scale
- Personal platform with public blog reads, newsletter subscribers, and course/lesson tracking.
- Category
- Platforms

- Subsystems
- 2
- RLS Coverage
- 100%
Context
The site needed two things engineering-side: a CMS so the blog no longer requires code changes, and an LMS so the courses I teach live in the same place I write.
Challenge
Run a CMS and an LMS off the same Supabase database without cross-contamination, while keeping the public site fully static.
Non-negotiables
- Public site has to load quickly
- Newsletter export GDPR-clean
- Lesson progress survives a logout
Calls I made
- 01
Static public, dynamic admin
Public pages are statically generated. Only the admin panel talks to Supabase live.
- 02
RLS across both subsystems
Every table (posts, lessons, progress) sits behind row-level policies. The admin client and the student client run as different identities.
Trade-offs accepted
- Markdown editor is text-area plus preview, not WYSIWYG. The audience is technical; rich editors are awkward for code blocks.
- Deferred video hosting. External embeds for now.
Outcome
Writing and teaching ship from the same admin panel, on a static public surface that is cheap to host.
Stack
- Next.js 16 (App Router)
- React 19
- TypeScript
- Supabase
- Postgres RLS
- Tailwind CSS 4
- Framer Motion
- remark/rehype
- Shiki
- Resend
- Vercel
Got something similar in mind?
Send 3 lines. I reply within a day.