plggmatic
A pre-organized, composable full-stack web-application framework, built on the plgg family. It supplies the framework-generic parts — config loading, a router builder, static-build orchestration, and a pre-organized CLI — and leaves an app to supply its own content and render specifics.
Why it exists
A site generator like plggpress and a bespoke app share the same skeleton: load a config, build a router, run a static build or serve. plggmatic extracts that skeleton so each app writes only what makes it distinct:
plgg ─┬─ plgg-http ─ plgg-server ─┐
└─ plgg-cli ────────────────┴─ plggmatic ── plggpressDev / hot-reload is deliberately not here — that is a toolchain concern owned by plgg-bundle's dev server.
How it's organized
- Config —
loadConfigreads and validates an app's config across the untrusted boundary. - Routing —
buildRouterassembles a plgg-server router from the app's page set. - Build —
buildruns aBuildSpecto emit the static site, returning aBuildReport. - App —
AppOptions/BuildReportand theConfigLoadErrorvocabulary. - Cli —
runApp+resolveOptionsare the pre-organizedargv→ build/serve entrypoint, built on plgg-cli.
plggmatic is ESM-only. The exact option types and the BuildSpec shape live in the plggmatic source.