Courseware as Structured Content Infrastructure

repotypescriptconvexcourse-platformstructured-contentcontent-pipelinesdkcliadragent-workflows

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-sdk keeps 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-cli exposes sync, status, diff, seed, config, auth, and RPC workflows as operator surfaces instead of hiding them inside framework code.
  • The repo’s lat.md knowledge 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.