initial landing scaffold (hyperhive/website MVP)
Tracks hyperhive#502 — landing-only first cut. Static site
generator: Zola (Rust, fits the swarm's stack and the operator's
"sounds exciting" go-ahead on the issue thread).
## Structure
- `flake.nix` — `nix build .#website` produces the dist; `nix
develop` drops into a shell with zola for `zola serve` live
reload. No CI runner; the flake is the validation contract.
- `config.toml` — Zola config; base URL `hyperhive.darkest.space`
per #502. Single-page landing — feeds / search index off.
- `content/_index.md` — landing copy. Editable without touching
templates so non-engineers can refresh prose.
- `templates/base.html` + `templates/index.html` — base layout +
landing-specific extension. og:tags + favicon wired through.
- `sass/main.scss` — theme. Catppuccin Mocha palette + the amber
accent from the swarm's identity hex mark. Self-contained
(no @import) so the file is reviewable in one place.
- `static/{favicon,hex-mark,hyperhive}.svg` — copies of the
dashboard's `branding/hyperhive.svg` (hex motif). Used as
favicon, hero inline, and og:image respectively.
## Theme
Monospace identity throughout — matches dashboard / agent
terminals so the website reads as part of the same family
rather than a separate marketing artifact. Banner glyphs
(`░▒▓█▓▒░`) on the title, dashed dividers, cyan/mauve/amber
accents, glow text-shadow on the hero. Subtle CSS-only pulse
on the hex motif (slow `rotate` on the SVG; speeds up on hover
for a small "noticed" cue).
## Three-column "what's inside"
`the swarm` / `the dashboard` / `the boundary` — quick
orientation for visitors who clicked through from a link
without context. Copy intentionally short; deep dives belong
in /docs (future, not in this MVP).
## Scope drop
Per mara on #502:
- no nav / blog / docs yet — landing only
- no screenshots in MVP, follow via issues in this repo
- public visibility
## Provenance
Scaffolded under `iris/website` because my agent forge token
doesn't carry org-admin to create repos under `hyperhive/`.
Manager confirmed their token doesn't either; mara will do the
org transfer once she gets to it. README documents this.
2026-05-27 10:08:56 +02:00
|
|
|
# Zola config — hyperhive marketing landing (#502).
|
|
|
|
|
#
|
|
|
|
|
# Single-page landing for now; nav / blog / docs come later if scope grows.
|
|
|
|
|
# Theme lives in `sass/main.scss` and `templates/`; no external Zola theme
|
|
|
|
|
# import — the project's identity matches the dashboard / agent terminals
|
|
|
|
|
# closely enough that pulling in a third-party theme would just give us
|
|
|
|
|
# something to fight.
|
|
|
|
|
|
|
|
|
|
base_url = "https://hyperhive.darkest.space"
|
|
|
|
|
title = "hyperhive"
|
|
|
|
|
description = "a swarm of claude agents in nspawn containers, with an operator-shaped trust boundary."
|
|
|
|
|
|
|
|
|
|
# We don't need RSS / search / sitemaps for a single-page landing. Can
|
|
|
|
|
# flip these on later if blog content lands.
|
|
|
|
|
generate_feeds = false
|
|
|
|
|
build_search_index = false
|
|
|
|
|
|
|
|
|
|
# Embed the SCSS pipeline; zola compiles `sass/*.scss` → `public/*.css`.
|
|
|
|
|
compile_sass = true
|
|
|
|
|
|
|
|
|
|
# Markdown rendering defaults — landing has very little prose so the
|
|
|
|
|
# fancier syntax-highlight setup isn't needed yet. Easy to turn on later.
|
|
|
|
|
[markdown]
|
|
|
|
|
highlight_code = false
|
|
|
|
|
smart_punctuation = true
|
|
|
|
|
|
|
|
|
|
[extra]
|
|
|
|
|
# Catppuccin Mocha palette + amber accent (matching the hex mark) is
|
|
|
|
|
# the project's identity. Single source of truth — `main.scss` reads
|
|
|
|
|
# these via Sass variables, not from this attrset (Zola doesn't pipe
|
|
|
|
|
# extras into Sass). Keeping them here as documentation only so the
|
|
|
|
|
# theme intent is reviewable in one place.
|
|
|
|
|
palette = "catppuccin-mocha"
|
|
|
|
|
accent = "amber"
|
2026-05-27 12:56:34 +02:00
|
|
|
|
|
|
|
|
# Public-facing forge URL — surfaced in templates via
|
2026-05-27 12:57:05 +02:00
|
|
|
# `{{ config.extra.forge_url }}`. Points at the planned
|
|
|
|
|
# `forge.darkest.space` mirror (per mara on PR #1): not yet up,
|
|
|
|
|
# but will host `hyperhive/hyperhive` once it lands. Hardcoding
|
|
|
|
|
# the future URL means no template churn when it goes live —
|
|
|
|
|
# only DNS / web wiring on the operator's side.
|
|
|
|
|
forge_url = "https://forge.darkest.space/hyperhive/hyperhive"
|