Marketing site for GitWarren — a desktop app for reviewing your own git repositories, including the work that hasn't been committed yet.
Static site, built with Astro and Tailwind v4, deployed on Cloudflare Workers.
Built. One page, no client-side JavaScript.
Download links are resolved at build time from the GitHub releases API, and
the app repo redeploys this site whenever a release is published. See
CLAUDE.md for the positioning, tokens, type system and hero
treatment the page was built from.
The design canvas, which is the easiest way to see the page as intended, is linked from that file.
| Path | What |
|---|---|
design/canvas/ |
Design source — .dc.html artboards and canvas.json. |
design/screenshots/ |
Full-resolution app screenshots, 2400x1600 @2x. |
design/brand/ |
The 1710px master logo. |
src/assets/ |
Full-resolution image sources. Astro emits the derivatives. |
src/components/ |
The page, in pieces. |
src/styles/global.css |
The design system, as a Tailwind @theme block. |
Screenshots are regenerated from the app repo — see
design/screenshots/README.md.
npm install
npm run dev # http://localhost:4321
npm run build # static output into dist/
npm run preview # serve the build locally
npm run check # astro check — keep this at 0 errorsCloudflare Workers, static assets only — wrangler.jsonc declares no main,
so there is no Worker script, just dist/ served from the edge. Connect the
repository through Workers Builds for production deploys on main and preview
URLs on pull requests, or push a build by hand:
npm run deployDownload URLs are resolved from the GitHub releases API at build time. That
call is rate-limited on a shared build IP, so a GITHUB_TOKEN is set in the
Worker's build variables — and if it is ever missing, the build falls
through to a github.com lookup with no quota to exhaust. If both lookups fail
the build stops rather than deploy a page pointing at the wrong release. See
CLAUDE.md for the whole story.
All rights reserved. The app itself is GPL-3.0 and lives in its own repository.