Product website for Uncaged — the agentic terminal with no account, no cloud, no cage. Built with Astro, fully static, zero client frameworks.
npm install
npm run dev # http://localhost:4321
npm run build # static output in dist/
npm run preview # serve the production build locally| What | Where |
|---|---|
| All copy-adjacent data — URLs, version, providers, features, FAQ | src/data/site.ts |
| Design tokens (palette, type, motion) | src/styles/global.css — spec in DESIGN-SYSTEM.md, living gallery at /design |
| Page sections | src/components/ |
| Brand assets (favicon, mark, touch icon) | public/ |
Colors, type and voice follow Midnight, the site's own design system
(DESIGN-SYSTEM.md, living gallery at /design):
JetBrains Mono + Inter on a cool blue-black ground, with the gold→ember family
as the only warmth on the page. The logo itself is governed by the separate
"Ember" system in the uncaged-design-system repo.
Download buttons point at the canonical GitHub latest-release assets, named
Uncaged-<os>-<arch>.<ext> by the app repo's release workflow:
https://github.com/getuncaged/uncaged/releases/latest/download/Uncaged-macos-aarch64.dmg
https://github.com/getuncaged/uncaged/releases/latest/download/Uncaged-linux-x86_64.tar.gz
https://github.com/getuncaged/uncaged/releases/latest/download/Uncaged-windows-x86_64-setup.exe
They go live automatically the moment a release publishes an asset with the
matching name — no site change needed. The full per-OS/per-arch set lives in the
DOWNLOADS matrix in src/data/site.ts (mirroring the app repo's
DOWNLOADS.md); to add a platform, extend that matrix and it renders in
src/components/Downloads.astro.
Deployed on Vercel at
getuncaged.dev. Astro is auto-detected; vercel.json
adds security headers and immutable caching for hashed assets. Every push to
master redeploys.