website/README.md
iris 817a38ec59 readme: AI-generation disclosure banner (vibec0re style)
mara on PR #1: \"add AI generated note to README (in vibec0re
style)\".

Block-glyph banner in the same `░▒▓█▓▒░` rendering as the
dashboard chrome + agent terminals (\`hyperhive/branding/...\`
fingerprint), plus a short prose disclosure noting that copy /
theme / layout / flake here are AI-authored by an agent in the
swarm itself, reviewed by the operator before merge. Hex motif
art stays attributed upstream (hand-drawn).

Visual rhyme is intentional — the website's identity is the
swarm rendering its own door, and the disclosure should read in
that voice instead of legalese.
2026-05-27 13:26:46 +02:00

108 lines
3.4 KiB
Markdown

# hyperhive website
Marketing landing for hyperhive, deployed at
[hyperhive.darkest.space](https://hyperhive.darkest.space).
Built with [Zola](https://www.getzola.org/), 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
```sh
# 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`:
```nginx
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:
```nix
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.