zeekayandHanzo Dev 3a9451c04f templates: point the submodules at hanzo-templates, where they now live
The 69 template repos moved out of hanzo-apps into the hanzo-templates org.
All 68 .gitmodules urls still named hanzo-apps/template-<name>.

GitHub keeps a redirect after a transfer, and `git submodule update` follows
it, so nothing was broken yet. But that redirect EVAPORATES the moment any
new repo claims the old path — and hanzo-apps is exactly the org where new
repos get created. Repointing before that happens is the difference between
a rename and an outage nobody can explain.

Every one of the 68 targets was verified to exist at hanzo-templates/<bare>
before its url was rewritten. Two had no twin because they were never
duplicates -- template-unfixed and template-nextjs-template were the only
originals in the set -- so they were moved and renamed rather than repointed
at something that did not exist.

NOT fixed here: six gitlinks are in the tree with no .gitmodules entry at all
(apps/next, apps/papers, apps/vite, brands/lux, brands/zen, brands/zoo), so
`submodule update` already fails on them. The apps/* three resolve to
hanzo-templates. The brands/* three do NOT -- their recorded commits are
absent from luxfi/brand, zenlm/brand and zooai/brand, so the obvious guess is
wrong and writing it in would turn a missing entry into a wrong one.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-27 16:27:06 -07:00
2026-06-28 20:22:17 -07:00

templates

Hanzo OSS Templates

The one-click open-source catalog for Hanzo Cloud. One static build, served at two hosts:

  • templates.hanzo.ai — the machine-readable catalog the Hanzo PaaS loads: meta.json (the app list) + blueprints/<id>/{template.toml,docker-compose.yml,<logo>} per app.
  • oss.hanzo.ai — the human explorer/launcher (index.html): search + filter the catalog and one-click deploy.

100% static, served by hanzoai/static under a strict CSP (script-src 'self' — no inline scripts). No build step, no server.

One-click deploy

Each card's Deploy CTA deep-links the PaaS:

https://platform.hanzo.ai/templates?deploy=<id>

platform.hanzo.ai/templates reads ?deploy=<id>, matches it against this same meta.json, and opens the deploy dialog (PaaS pages/dashboard/templates.tsx).

Layout

index.html        the explorer — hero, search, category filter, card grid
css/oss.css       theme-aware (light/dark), responsive styles
js/oss.js         reads meta.json; renders, searches + filters the catalog
js/theme.js       light/dark bootstrap + toggle (pre-paint, no FOUC)
meta.json         the catalog: array of {id,name,description,version,logo,links,tags}
blueprints/<id>/  per-app deploy spec + logo (the PaaS loader reads these)

Data contract — do not break

The PaaS loader (platform → pkg/platform/src/templates/github.ts) fetches meta.json and blueprints/<id>/{template.toml,docker-compose.yml} from this origin. Keep the meta.json shape and the blueprints/<id>/ paths stable — the human UI only reads them to render the gallery.

S
Description
Collection of prebuilt UI templates for dashboards, landing pages, portfolios, and ecommerce sites.
Readme MIT
216 MiB
Languages
Shell 52.9%
TypeScript 35.7%
JavaScript 8.8%
Makefile 2.6%