hitbox.rs
Monorepo for the Hitbox project websites.
| Subdomain | Tool | Status |
|---|---|---|
blog.hitbox.rs |
Zola | Active |
hitbox.rs |
TBD | Planned |
docs.hitbox.rs |
mdbook | Planned |
Structure
shared/ Shared design tokens (SCSS, fonts, images)
blog/ Zola blog (blog.hitbox.rs)
templates/ Tera templates (including og-image.html)
content/blog/ Blog articles
static/og/ Generated OG images (committed)
sass/ Blog-specific styles + synced shared SCSS
site/ Landing page (hitbox.rs) — planned
docs/ Documentation (docs.hitbox.rs) — planned
Shared SCSS and fonts from shared/ are copied into sub-projects at build time
via make blog-sync. Each sub-project stays self-contained after the copy.
Development
The Makefile auto-downloads the pinned Zola version (0.22.1) to .bin/ — no
manual installation needed.
# Start blog dev server with live reload
make blog-dev
# Production build
make blog-build
# Clean synced shared assets
make cleanDeployment
The blog is deployed on Cloudflare Workers at blog.hitbox.rs.
npx wrangler deployConfiguration is in wrangler.toml at the repo root.
OG Images
OG images are generated from a Zola template (blog/templates/og-image.html)
and headless Chromium. The template pulls article metadata (title, tags, reading
time) directly from Zola — no external scripts.
# Requires chromium
make og-imagesThis auto-discovers all articles with og_image in their frontmatter, renders
each one as a 1200x630 HTML page via Zola, screenshots it, and saves the PNG to
blog/static/og/. The generated PNGs are committed to the repo since Cloudflare's
build environment doesn't have Chromium.
To add an OG image to a new article, add to its frontmatter:
[extra]
og_image = "og/your-article-slug.png"
og_highlight = "Word" # optional — highlighted in accent colorPages without a custom og_image use the default hitbox logo.
License
MIT