Standalone repo that builds embeddable JAMstack map bundles (web components), composes them into a lazy-loaded SPA via layouts/, and optionally wraps a Capacitor Android/iOS app — one build, choose your output/CDN. Diátaxis docs. History reset to a single clean commit; no PII, IPs, or internal terms. |
||
|---|---|---|
| .github/workflows | ||
| app-profiles | ||
| capacitor/android | ||
| contributing | ||
| docs | ||
| internal | ||
| layouts | ||
| library | ||
| public | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| bun.lock | ||
| capacitor.config.json | ||
| CONTRIBUTING.md | ||
| index.html | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| vite.config.js | ||
| vite.doxa-maps-build-config.json | ||
doxa-maps
A portable bundler that generates JAMstack maps that embed on all your partner sites.
✨ New here, and you don't write code?
You can build real, embeddable maps by describing them to an AI coding agent — no programming required. Start with the friendly, zero-jargon guide: docs/tutorial.md.
Quickstart
Bun is required (bun.lock is the committed lockfile — install from https://bun.sh).
bun install
bun run build # builds every app-profiles/<bundle>/ → public/doxa-maps/<bundle>/<bundle>.js
bun run dev # HMR staging at http://localhost:5173/ (does NOT update a built public/)
Built output lands in public/, the committed, served web-root. Serve that folder from
anywhere and the bundles are embeddable from it.
Embed a map
<link href="https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css" rel="stylesheet" />
<script src="https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js"></script>
<script src="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js"></script>
<script src="/doxa-maps/my-map/my-map.js"></script>
<my-map profile-config='{"profile":"my-map","tk":"pk.eyJ..."}'></my-map>
The bundle is a plain <script> web component — the host page needs no build step and no
framework. profile-config is read at runtime, so the same bundle re-points at different data
or colors with no rebuild.
Run it in your site, share it to partners — same map, many places
Two levels. The maps are web-component / iframe embeds you drop on any partner site with no build step on their end. The bundler is self-contained: it runs standalone, or drops inside a host repo and builds in place — so you own and vendor the whole thing, and choose where the built maps are served from (your own site, GitHub/jsDelivr, or any CDN). One map runs in your own site and embeds on your partner sites.
Docs
- Tutorial — build your first map, step by step.
- How-to — task recipes: embed, add a profile, choose a CDN, set tokens.
- Reference — file map, config fields, contracts, the
@maplibrary index. - Explanation — the architecture and why it's shaped this way.
Contributors: see CONTRIBUTING.md.
License
Built on the doxa-maps template (Apache-2.0) — the shared library/ and build tooling are a
permissive base everyone shares. Your maps under app-profiles/<bundle>/ are yours: your color
strategies, API connections, and i18n. Full text: LICENSE.