doxa-maps/docs/slide-deck-outline.md
swift-river542 9cefd6faa4 Plugin gallery: one generator for the dev server and the build
- internal/playground → internal/plugin-gallery; playground-smoke → plugin-gallery-smoke;
  generate-spa → generate-gallery (scripts: gallery, smoke:gallery; smoke:playground stays as alias)
- generate-gallery exports renderGallery(model, { mode }) — the dev plugin serves the same page
  at / from the discovered registry (dev mode imports the dev entries, ladder popovers on);
  the build writes public/index.html from the manifest (byte-identical to before)
- Docs and probes use the gallery vocabulary
2026-09-16 20:04:18 -05:00

2.6 KiB

doxa-maps — slide deck outline (BLUF; hand-off pitch)

One slide = one gold nugget. Bottom line up front, then facets. Real product names named. Keep the itch words: JAMstack · SPA · embed on thousands of partner sites.

  1. Title — "doxa-maps — a JAMstack bundler for composable, embeddable-first maps." Sub: build once, embed on thousands of partner sites, or ship as an app. Authored agent-first.
  2. The bottom line (the whole pitch on one slide) — One build step outputs every map as a self-contained web component with its own HTML page → embed anywhere, compose into a single-page app, or wrap as iOS/Android. [pipeline diagram from README]
  3. The problem — 10 partner sites, 3 bad options (rebuild per site / iframe farm / framework lock-in). Change once → redo ten times.
  4. The answer: map islands — one file, drops in like an image, host needs no framework or build step. [hero diagram]
  5. One build, three products — embeds · SPA (the power app) · mobile. Same bundles.
  6. Proof it's portable (the WordPress story) — the whole site changed frameworks; the map moved with a few-line wrapper, zero refactor. Migration-proof by design.
  7. JAMstack = future-proof — front end moves anywhere; swap the back end (or map engine Mapbox↔MapLibre) with no rebuild. Live: partners get new maps on reload.
  8. Fast & lean — one inlined file (Vue+CSS), tree-shaken, one request; faster than Vue-CDN.
  9. The one rule (the entire learning curve) — non-reusable code stays in your app-profile; only proven components graduate to the shared library. Follow it → maps never break each other.
  10. Built for agents — connect your agent → dev server → staging of every map → feedback → one build. "Built by agentic engineers, for agentic engineers." (aka vibe coders.)
  11. The mission fit — prayer maps embedded on partner sites; MapLibre = token-free, no single point of failure across thousands of embeds; posters + prayer packets print from one codebase.
  12. Where it thrives (the pairing, not a dependency) — decoupled by design; pair with an internal developer platform (MCP onboarding, multi-tenant, CI/CD) and the multiplication compounds. Standalone today; exponential paired.
  13. The stack (name the real products) — Vite · Bun · Vue web components · MapLibre/Mapbox · Capacitor · Forgejo (source-control-as-CDN). No lock-in — un-closable primitives.
  14. Try it / take it — the repo, the docs (why → tutorial → how-to → reference → architecture), the live plugin gallery. Deep-dive: point your agent at docs/architecture/.