TAUSIF
TAUSIF
Back to projects

Platforms

Tausif1337.dev CMS + LMS

Two subsystems on one personal platform: a markdown blog CMS with newsletter export, and an LMS with course → module → lesson hierarchy and progress tracking. Supabase RLS underneath both.

Next.js 16 (App Router)React 19TypeScriptSupabasePostgres RLSTailwind CSS 4Framer Motionremark/rehypeShikiResendVercel

2

Subsystems

RLS

Enforced

How it came together

The setup

The site needed two things engineering-side: a CMS so the blog stops touching code, and an LMS so the courses I teach live in the same place I write.

The challenge

Run a CMS and an LMS off the same Supabase database without cross-contamination, and keep the public site fully static.

Scale

Personal platform with public blog reads, newsletter subscribers, and course/lesson tracking.

The hard parts

Non-negotiables

  • Public site has to load instantly
  • Newsletter export GDPR-clean
  • Lesson progress survives a logout

Trade-offs we made

  • Markdown editor is text-area + preview, not WYSIWYG. The audience is technical; rich editors are a liability for code blocks.
  • Skipped video hosting. Embed external for now.

Calls I made

Static public, dynamic admin

Public pages are statically generated. The admin panel is the only thing that talks to Supabase live.

RLS across both subsystems

Every table (posts, lessons, progress) sits behind row-level policies. The admin client and the student client run with different identities.