- Astro 44.2%
- TypeScript 30.7%
- Python 9%
- JavaScript 8.1%
- HTML 6.3%
- Other 1.6%
|
|
||
|---|---|---|
| .github | ||
| .vscode | ||
| _bmad | ||
| _bmad-output | ||
| collaboration | ||
| docs | ||
| public | ||
| research | ||
| scripts | ||
| src | ||
| tests | ||
| .dockerignore | ||
| .gitattributes | ||
| .gitignore | ||
| astro.config.mjs | ||
| bun.lock | ||
| CLAUDE.md | ||
| CNAME | ||
| CODEOWNERS | ||
| components.json | ||
| Dockerfile | ||
| nginx.conf | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| README.md | ||
| tsconfig.json | ||
OpenHaven — Open Protocol Navigator
A live, data-driven convergence navigator for the P2P / decentralized-web ecosystem. Users navigate Use Cases → Affordances → Tools to find the protocols and platforms for a given need, with governance model and capture risk surfaced alongside technical capability. Astro 5
- React 19 + Tailwind 4, deployed at https://openhaven.net.
This repository is both the website and the BMAD planning workspace that produces it:
| Path | What |
|---|---|
src/, public/, astro.config.mjs, Dockerfile, nginx.conf |
The website (built to dist/, served by nginx) |
_bmad/ |
BMAD method install (stock modules gitignored; only customizations tracked) |
_bmad-output/ |
PRD, architecture, epics, stories, tech specs — the source of truth for work |
scripts/, research/ |
The protocol-data pipeline and its source spreadsheet |
collaboration/ |
Team conventions + skills (the Linear ↔ BMAD workflow) |
docs/ |
Project + methodology docs |
Quick start (website)
bun install # install deps
bun run dev # dev server
bun run build # static build → dist/
bun run preview # preview the build
Setup / onboarding (new contributors)
You need access to this Forgejo repo (log in via Authentik) and your own Linear connection.
# 1. Clone
git clone https://git.myceli.al/openhaven/openhaven.net.git
cd openhaven.net
# 2. Website deps (only if you'll run/build the site)
bun install # or: npm install
# 3. Regenerate the stock BMAD modules (gitignored — only customizations are tracked).
# Install the same modules as the workspace, and recompile agents when prompted
# so the tracked customizations apply.
npx bmad-method install # BMAD v6.0.3 · modules: core, bmm, cis, bmb
# 4. Load the shared collaboration skills into your agent
mkdir -p .claude/skills && cp -R collaboration/skills/* .claude/skills/
# 5. Connect your OWN Linear MCP (workspace OpenHaven · team key OPE).
# See collaboration/README.md → Setup §1.
Then point your AI agent at CLAUDE.md first — it carries the session protocol
(AWAKEN), the BMAD ↔ Linear source-of-truth rules, and the Design Audit checklist.
How we work: BMAD (_bmad-output/) is the source of truth for user stories; Linear
(team OPE) is the live status board. An item created in Linear isn't dev-ready until its
BMAD story exists. Full conventions: collaboration/ (README.md + the linear-bmad /
linear-bmad-merge skills).
Data pipeline
The protocol matrix is authored in a single-writer source spreadsheet and compiled to JSON:
- Source:
research/protocols/OpenHaven-for-P2P-Convergence.xlsx(binary; data authority @Enli10ment — seeCODEOWNERS). On conflict, the data authority reconciles it in a spreadsheet app, then re-runs the pipeline. - Pipeline:
scripts/convert-xlsx.py(xlsx → JSON),scripts/enrichment_data.py, andscripts/audit_xlsx_vs_json.py(parity check). On macOS, use the Xcode Command Line Toolspython3(not Homebrew) foropenpyxlcompatibility. - Output:
src/data/*.json(protocols, affordances, domains, entity-types, attributes, narrative …), validated againstsrc/lib/schemas.tsand consumed by the Astro site.
Edit narrative copy directly in src/data/narrative.json; edit matrix data via the
spreadsheet + pipeline, not the generated JSON.
Deployment
The site is a static Astro build served by nginx — the Dockerfile builds the Astro
output and serves /dist via nginx.conf — deployed to self-hosted infrastructure. Only
src/ is built; the BMAD folders are never bundled or served.
⚠️ The legacy
.github/workflows/deploy.ymltargets GitHub Pages and is inert on Forgejo — it's a leftover from the GitHub era and does not deploy here. Replace it with a Forgejo Actions workflow (or remove it) when convenient.
Project structure
openhaven.net/ # one repo: website + BMAD workspace
├── src/ # Astro site (pages, components, data, lib, styles)
├── public/ # static assets
├── astro.config.mjs
├── Dockerfile, nginx.conf # build + serve
├── _bmad/ # BMAD method (stock gitignored; customizations tracked)
├── _bmad-output/ # PRD, architecture, epics, stories, specs ← work source of truth
├── scripts/ # xlsx → JSON data pipeline
├── research/ # protocol source spreadsheet + governance research
├── collaboration/ # team conventions + Linear↔BMAD skills
├── docs/ # project + methodology docs
└── CLAUDE.md # session protocol + working rules