krabka-io.github.io
September 26, 2026 ยท View on GitHub
The official website and unified documentation hub for the Krabka streaming ecosystem, built with Astro 5 and Tailwind CSS.
Hosted live at krabka.io and krabka-io.github.io.
The site also publishes two things the rest of the organisation depends on: the aggregated Helm chart repository, and the brand assets that published charts point their icon at.
๐ Quick Start
Prerequisites
- Node.js:
>= 18.20.8(Node 22 LTS recommended) - npm:
>= 10.0.0 - Rust Toolchain: Stable with
wasm32-unknown-unknowntarget (only required if building the WebAssembly consensus playground)
Commands
# Install dependencies
npm install
# Start local development server (automatically syncs docs from sibling repos)
npm run dev
# Manually synchronize markdown guides and compiler API archives
npm run sync-docs
# Build the WASM playground, then the full static bundle in ./dist
npm run build
# Build pages only (skipping playground WASM rebuild)
npm run build:site
# Build the WASM playground only
npm run build:playground
# Run internal link integrity audit (verifies all 6,000+ links resolve)
npm run check-links
# Run technical SEO audit (titles, descriptions, canonicals, social cards, sitemaps)
npm run check-seo
# Preview production build locally
npm run preview
๐๏ธ Architecture & Features
1. Decoupled Build + Unified Distribution Documentation
- Dynamic Content Collections: Markdown guides authored inside language sub-repositories (
krabka-streams-java,krabka-streams-go,krabka-broker) are ingested viascripts/sync-docs.mjsintosrc/content/docs/. - Astro 5 Dynamic Routing:
src/pages/docs/[...slug].astrorenders ingested guides with an automated right-hand "On This Page" Table of Contents, syntax highlighting, custom markdown typography, and GitHub source provenance footers. - Collapsible Symmetrical Navigation:
src/layouts/DocsLayout.astrogroups ecosystem topics into collapsible accordions with automatic active-state expansion and breadcrumbs.
2. Central API Reference Hub (/api)
- Hosts compiler-generated, interactive reference trees generated directly by native language compilers:
- Core Broker Engine: Multi-crate Rustdoc via Cargo/Aspect (
/api/broker/latest/) covering all 19 workspace crates - Java Streams & Arrow: Multi-module Javadoc via Bazel (
/api/streams-java/latest/) - Go Streams & Arrow: Static Godoc via Bazel (
/api/streams-go/latest/)
- Core Broker Engine: Multi-crate Rustdoc via Cargo/Aspect (
- Dynamically pinned to active GitHub release tags (
v0.5.3,v1.1.0,v0.1.0-dev) viasrc/data/versions.json.
3. Interactive WebAssembly Consensus Playground (/docs/playground)
/docs/playgroundruns Krabka's real KRaft consensus quorum directly in the browser.playground/holds the Rust crate bindingkrabka-kraft-coreto WebAssembly viawasm-bindgen, compiled during the site build viaplayground/build.sh.
4. Interactive Performance Benchmarks (/benchmarks and /docs/benchmarks)
- Dashboard (
/benchmarks): Dynamic latency percentiles (p50, p99, p99.9) and throughput graphs comparing Krabka against Apache Kafka across hardware profiles. - Methodology Guide (
/docs/benchmarks): In-depth technical documentation covering test topology, memory working set (RSS), and reproducible benchmark runbooks.
5. Aggregated Helm Chart Repository
Users add one repository URL:
helm repo add krabka https://krabka.io/charts
helm repo update
scripts/build-helm-index.sh walks the krabka-io organisation, takes every repository that holds a charts/ directory, packages each chart, and writes one index.yaml over the whole set in public/charts/. The helm-index.yml workflow runs daily and commits the result.
A component repository can trigger an immediate index rebuild via repository dispatch:
gh api repos/krabka-io/krabka-io.github.io/dispatches -f event_type=charts-changed
The chart signing public key lives in krabka-io/tooling, under charts/. No key material is stored here.
6. Brand Assets & Chart Icons
/brand lists every mark with the URL it is served from. Published Helm charts point their Chart.yaml icon at /logo.png. Treat a rename under public/brand or public/logo.png as a breaking change for published charts.
7. Release Verification & Track Resolution (/versions)
- Release tracking across stable, pre-release, and development channels with SLSA Level 3 provenance verification steps and Sigstore signatures.
8. Automated Verification Suites
- Link Integrity Crawler (
scripts/check-links.mjs): Recursively crawls every built HTML page indist/and asserts that 100% of internal links resolve to valid targets with zero 404s. - Technical SEO Auditor (
scripts/check-seo.mjs): Validates title tags, meta descriptions, canonical URLs, Open Graph / Twitter Card tags, single H1 hierarchies, and sitemaps. - Code Stub Verifier (
scripts/verify-code-stubs.mjs): Parses and validates all code snippets across ingested markdown guides and Astro documentation pages.
๐ Repository Structure
krabka-website/
โโโ .github/workflows/
โ โโโ deploy.yml # Builds the site and deploys to GitHub Pages
โ โโโ helm-index.yml # Rebuilds the aggregated chart index
โ โโโ playground.yml # Playground build verification
โโโ playground/ # krabka-playground: WASM consensus simulator (Rust)
โ โโโ src/lib.rs # wasm-bindgen shim over krabka-kraft-core
โ โโโ build.sh # Compiles to WebAssembly in public/playground/
โโโ public/
โ โโโ api/ # Synced compiler API references (gitignored, populated at build)
โ โโโ brand/ # Stable brand marks and lockups
โ โโโ charts/ # Aggregated Helm repository: index.yaml and tarballs
โ โโโ quickstart/ # Downloadable manifests (docker-compose.yml, krabka-cluster.yaml, crds.yaml)
โ โโโ favicon.svg / .ico # Geometric Dungeness crab icon suite
โ โโโ robots.txt # Search engine crawler permissions & sitemap reference
โ โโโ og-image.png # Social preview image
โโโ scripts/
โ โโโ sync-docs.mjs # Multi-repo documentation & release asset sync engine
โ โโโ check-links.mjs # Internal link crawl and resolution validator
โ โโโ check-seo.mjs # Production technical SEO audit suite
โ โโโ verify-code-stubs.mjs # Markdown and Astro code snippet syntax checker
โ โโโ build-helm-index.sh # Rebuilds public/charts from component repositories
โโโ src/
โ โโโ components/ # Reusable UI components (Navbar, Footer, BenchmarkBar, etc.)
โ โโโ content.config.ts # Astro 5 Content Collections glob loader schema
โ โโโ content/docs/ # Ingested markdown guides (gitignored, populated by sync-docs)
โ โโโ data/
โ โ โโโ versions.json # Live synchronized active release version mappings
โ โ โโโ ecosystem-versions.json # Cached baseline release and commit status
โ โโโ layouts/
โ โ โโโ BaseLayout.astro # HTML shell, OpenGraph tags, JSON-LD Schema.org metadata
โ โ โโโ DocsLayout.astro # Documentation shell with collapsible sidebar & sticky TOC
โ โ โโโ ProseLayout.astro # Article layout for long-form whitepapers
โ โโโ pages/
โ โ โโโ 404.astro # Custom branded 404 error page
โ โ โโโ api/index.astro # Searchable API Reference Directory table
โ โ โโโ docs/ # Hub landing, module home templates, and [...slug].astro
โ โ โโโ features/ # Technical architecture pages (KRaft, Tiered Storage, etc.)
โ โ โโโ whitepapers/ # Architectural deep dives and scaling whitepapers
โ โ โโโ brand.astro # Brand guidelines and vector assets
โ โ โโโ benchmarks.astro # Interactive performance benchmark dashboard
โ โ โโโ get-started.astro # Interactive quickstart with Docker Compose and Helm
โ โ โโโ index.astro # Primary ecosystem homepage
โ โ โโโ versions.astro # Release tracks and SLSA artifact provenance
โ โโโ styles/
โ โ โโโ custom.css # Ocean dark theme, custom scrollbars, markdown typography
โ โ โโโ playground.css # Interactive consensus simulator styling
โ โโโ utils/
โ โโโ paths.ts # Base URL path resolution helper
โ โโโ versions.ts # GitHub GraphQL live release resolution
โโโ astro.config.mjs # Astro static site configuration
โโโ tailwind.config.mjs # Tailwind configuration with @tailwindcss/typography
โโโ package.json # Scripts and project dependencies
๐ License
Apache License 2.0. Copyright ยฉ 2026 The Krabka Authors.