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.
This commit is contained in:
parent
b1dd949291
commit
d3a55c5631
12 changed files with 873 additions and 2 deletions
64
flake.nix
Normal file
64
flake.nix
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
# hyperhive marketing landing — Zola static site build (#502).
|
||||
#
|
||||
# `nix build` → `result/` is the `public/` Zola dist, ready to drop
|
||||
# under any static-file host. No CI runner needed; the flake is the
|
||||
# validation contract.
|
||||
description = "hyperhive marketing landing";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, flake-utils }:
|
||||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
in {
|
||||
packages.website = pkgs.stdenv.mkDerivation {
|
||||
pname = "hyperhive-website";
|
||||
version = self.shortRev or "dev";
|
||||
|
||||
src = ./.;
|
||||
|
||||
nativeBuildInputs = [ pkgs.zola ];
|
||||
|
||||
# Zola reads `config.toml` from CWD, writes `public/` next to it,
|
||||
# which we then move to $out. The build is offline / hermetic —
|
||||
# no network access needed at build time, which fits the nix
|
||||
# sandbox without extra fetchurls.
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
zola build --output-dir public
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out
|
||||
cp -r public/. $out/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Static-site dist; no shared libs to patchelf, no executables.
|
||||
dontFixup = true;
|
||||
};
|
||||
|
||||
# `nix build` with no attribute → the website dist.
|
||||
packages.default = self.packages.${system}.website;
|
||||
|
||||
# `nix develop` → a shell with zola for local iteration:
|
||||
# `zola serve` runs the dev server with live reload.
|
||||
devShells.default = pkgs.mkShell {
|
||||
packages = [ pkgs.zola ];
|
||||
};
|
||||
|
||||
# `nix run` is the dev-server shortcut: `nix run . -- serve`
|
||||
# boots Zola's hot-reload server on http://127.0.0.1:1111/.
|
||||
apps.default = {
|
||||
type = "app";
|
||||
program = "${pkgs.zola}/bin/zola";
|
||||
};
|
||||
});
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue