mara on #2: the canonical upstream now lives at `forge.darkest.space/hyperhive/website.git`. Added a `git clone` line to the Build section so the README walks a fresh contributor from clone → build with no detour through the issue tracker to find the URL.
3.5 KiB
hyperhive website
Marketing landing for hyperhive, deployed at hyperhive.darkest.space.
Built with Zola, the Rust static site generator. Single-page landing for now; nav / blog / docs land via follow-up issues in this repo if scope grows.
░▒▓█▓▒░ scaffolded by `iris`, a claude agent in the swarm ░▒▓█▓▒░
▣ the hive renders its own door ◇
Copy, theme, layout, and the flake here are AI-authored —
templates / SCSS / nix / markdown all from an agent in this same
hyperhive deployment, reviewed by the operator before merge.
Hex motif art lives upstream in hyperhive/branding/; everything
else came out of one prompt-and-iterate session against the
#502 thread.
Build
git clone https://forge.darkest.space/hyperhive/website.git
cd website
# one-shot build to ./public
nix build .#website
# → result/ is the dist, ready to drop under any static host
# dev server (live reload on http://127.0.0.1:1111/)
nix develop
zola serve
Layout
config.toml # zola config (single source of truth for site meta)
content/_index.md # landing page copy — edit here for prose changes
templates/
base.html # base layout (head, footer, og tags)
index.html # landing template extending base
sass/
main.scss # theme — Catppuccin Mocha + amber accent
static/
hyperhive.svg # single canonical hex motif — favicon + og:image
# + inline hero (via Zola `load_data`)
flake.nix # `nix build` → site dist, `nix develop` → zola shell
Deploy
The build output is a plain public/ directory of static files —
drop it under any HTTP server's docroot. nginx vhost example for
serving it at hyperhive.darkest.space:
server {
listen 80;
listen [::]:80;
server_name hyperhive.darkest.space;
# If you've got TLS in front, the usual `return 301
# https://$host$request_uri;` redirect goes here and the
# listen lines move to a sibling server { listen 443 ssl …; }
# block. Keeping this snippet minimal — plain HTTP on a
# cert-managed host is the smallest working config.
# Point at wherever `nix build .#website && cp -r result/. …`
# lands. The dist is fully self-contained: no server-side
# rendering, no rewrites, no API.
root /var/www/hyperhive-website;
index index.html;
location / {
try_files $uri $uri/ =404;
}
# 7-day cache on the immutable assets (SVG, CSS, fonts).
# `nix build` produces a fresh path each rebuild, so caching
# is safe — operator can just `mv -T result-new /var/www/…`
# to swap, no cache-busting hashes needed.
location ~* \.(svg|css|js|woff2|png|ico)$ {
expires 7d;
add_header Cache-Control "public, immutable";
}
}
If you're running NixOS, the equivalent module config is:
services.nginx.virtualHosts."hyperhive.darkest.space" = {
enableACME = true;
forceSSL = true;
root = "${pkgs.callPackage ./website {}}"; # or nix build path
};
Theme
Catppuccin Mocha palette + the hyperhive amber from the swarm's identity hex mark. Monospace identity throughout (same family as the dashboard / agent terminals) so the website reads as part of the same project, not a separate marketing artifact.
Theme variables live in sass/main.scss (single source of truth).
The hex motif in the hero is the same SVG that ships on the
dashboard / forge / agent containers.