Courseware as Structured Content Infrastructure
The structured-content provider seam maps to joelclaw's package-boundary habit: shared contracts, app-local adapters, and validation reports agents can run before publishing.
Gremlin is the next Badass Courses platform, pulled out of course-builder, but the interesting bit isn’t “new course platform.” It’s that the repo treats lessons, branches, resources, validation, sync status, and publishability as shared contracts instead of app-specific muck.
The clever move is the provider seam. Wizardshit.ai can read local MDX first and Convex second, while the shared @badass-courses/gremlin-sdk owns graph/presentation schemas and pure resolution helpers. Next.js App Router and TanStack Start are wrappers around the same structured-content core, not separate worlds drifting apart.
That makes course content less like “pages in a framework” and more like portable product infrastructure. The repo’s lat.md docs, Architecture Decision Records, Changesets, Playwright, Turborepo, gremlin-cli, and publishability report shape give agents places to check reality before changing content. That’s the part worth stealing for joelclaw: make authoring, runtime truth, and review evidence explicit enough that an agent can diff, sync, validate, and stop before doing dumb shit.
Key Ideas
@badass-courses/gremlin-sdkkeeps structured-content graph and presentation contracts framework-agnostic, so Next.js and TanStack Start apps can share the same course semantics.- Wizardshit.ai keeps provider precedence app-local: local MDX first, Convex second, with fallback policy living at the route layer instead of leaking into the shared core.
gremlin-cliexposes sync, status, diff, seed, config, auth, and RPC workflows as operator surfaces instead of hiding them inside framework code.- The repo’s
lat.mdknowledge graph and ADR system make architecture memory durable enough for humans and agents to revisit later. - Shared publishability reports turn content review into evidence: runtime truth, sync state, lifecycle state, and review decisions can be checked before publishing.
- The source quotes Michael Feathers, John Ousterhout, and Kathy Sierra, which matches the repo’s bias toward tested seams, deep modules, and making learners more capable.
Links
- Gremlin repository
- Badass Courses on GitHub
- course-builder repository
- Convex
- Drizzle ORM
- Effect
- Zod
- Next.js App Router
- TanStack Start
- Turborepo
- Playwright
- Changesets
- Architecture Decision Records
- MDX
- Wizardshit.ai
- James Long
- Working Effectively with Legacy Code by Michael Feathers
- A Philosophy of Software Design by John Ousterhout
- Badass: Making Users Awesome by Kathy Sierra