forgia · dev log
Engineering log for the forgia LMS platform.
- 27 Jun 26One page, three screens: the tabbed Course studio
Managing a Course used to mean bouncing between three separate screens — curriculum, students, settings — each with its own URL, its own header, its own back button. This slice folds them into a single tabbed page with a persistent header and the Publish button re-homed where you actually look for it. No new features inside the tabs: every tab is the old screen, relocated unchanged. The interesting decisions are structural — one LiveView for every tab, deep-linkable routes switched with push_patch, legacy URLs that redirect so nobody's bookmarks break, and a breadcrumb deliberately deleted.
sliceliveviewroutingdesign-systemrefactor - 22 Jun 26Readable course URLs: a slug that knows when to stop changing
Courses now live at /catalog/scrum-master-fundamentos instead of /catalog/42. The slug is auto-derived from the title — no field for the Instructor to fill — and the one decision worth writing down is about time: it regenerates on every title edit while the Course is a Draft, then freezes the moment it's Published, so a shared or indexed URL never breaks. Plus the small Phoenix trick that made ~25 links change by themselves, and why the migration is the only place a -2 suffix is allowed.
sliceseoroutingslugectophoenixddd