mirror of
https://github.com/hanzoai/templates.git
synced 2026-10-30 18:20:05 +00:00
master
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]>
feat(oss): redesign oss.hanzo.ai into an educational, discoverable OSS explorer + one-click launcher
feat(oss): redesign oss.hanzo.ai into an educational, discoverable OSS explorer + one-click launcher
feat(oss): redesign oss.hanzo.ai into an educational, discoverable OSS explorer + one-click launcher
feat(oss): redesign oss.hanzo.ai into an educational, discoverable OSS explorer + one-click launcher
feat(oss): redesign oss.hanzo.ai into an educational, discoverable OSS explorer + one-click launcher
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.
Languages
Shell
52.9%
TypeScript
35.7%
JavaScript
8.8%
Makefile
2.6%