From b2fc88a10cedc7380aa1e73097fa7ac8f77b6f06 Mon Sep 17 00:00:00 2001 From: vraspar Date: Fri, 27 Mar 2026 16:29:41 -0700 Subject: [PATCH] =?UTF-8?q?fix(website):=20redesign=20=E2=80=94=20revert?= =?UTF-8?q?=20feature=20bloat,=20fix=20factual=20errors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Revert 'Why brain?' from 9 feature-dump cards to 3 focused differentiators (Git storage, FTS5 search, MCP-native) + compact 'Also:' line - Revert 'How it works' from 4 steps to 3 (Start -> Add knowledge -> Discover) - Restore 'Zero infrastructure. One command to start.' punch line - Restore ASCII architecture diagram (was replaced with HTML boxes) - Fix version: v0.4.1 -> v0.1.0-alpha (matches package.json) - Fix table characters: ASCII +--+ -> Unicode box-drawing (matches actual CLI output) - Fix white-space accessibility bug in reduced-motion static fallback - Remove ~50 lines of unused CSS (arch-diagram, arch-box, arch-arrow-down) - Add roadmap link to footer Net: -76 lines. Less is more. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- website/index.html | 119 +++++++++++++++++--------------------------- website/style.css | 87 +++++++------------------------- website/terminal.js | 16 +++--- 3 files changed, 73 insertions(+), 149 deletions(-) diff --git a/website/index.html b/website/index.html index 87e0cb4..1fa8d5c 100644 --- a/website/index.html +++ b/website/index.html @@ -56,47 +56,47 @@

How it works

-
1. Create
-
-
$ brain init --name "My Team"
+
1. Start
+
+
# First person creates a brain
+
$ brain init --name "Acme Engineering"
-βœ… Brain "My Team" is ready!
+βœ… Brain "Acme Engineering" is ready!
+
 
+
# Teammates join it
+
$ brain connect https://github.com/acme/brain-hub.git
-
2. Import
-
-
$ brain ingest https://github.com/acme/docs.git
-
-βœ… Ingested 24 entries from acme/docs - πŸ’‘ 8% stale. Run 'brain prune --dry-run' to review.
-
-
- -
-
3. Share
-
+
2. Add knowledge
+
+
# Push a single guide
$ brain push ./guide.md
βœ… Pushed: Docker Multi-Stage Builds Tags: docker (auto-detected)
+
 
+
# Or import docs from a repo
+
$ brain ingest https://github.com/acme/docs.git
+
+βœ… Ingested 24 entries from acme/docs
-
4. Discover
+
3. Discover
$ brain search "kubernetes"
Found 3 results: -+------------------------+--------+-------+-----------+ -| Title | Author | Type | Tags | -+------------------------+--------+-------+-----------+ -| K8s Deployment Guide | bob | guide | k8s | -| CI Pipeline | carol | guide | ci, k8s | -| Helm Chart Patterns | alice | skill | helm, k8s | -+------------------------+--------+-------+-----------+
+β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Title β”‚ Author β”‚ Type β”‚ Tags β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ K8s Deployment Guide β”‚ bob β”‚ guide β”‚ k8s β”‚ +β”‚ CI Pipeline β”‚ carol β”‚ guide β”‚ ci, k8s β”‚ +β”‚ Helm Chart Patterns β”‚ alice β”‚ skill β”‚ helm, k8s β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
@@ -115,39 +115,18 @@

Git as storage

FTS5 search

-

SQLite FTS5 with BM25 ranking, prefix matching, and contextual snippets. Sub-millisecond search. Works offline.

-
-
-

MCP server

-

10 tools and 2 resources exposed via Model Context Protocol. AI agents can search, read, edit, and publish entries. brain serve starts the server.

-
-
-

Repo ingest

-

Seed your brain from existing repos. brain ingest <url> scans for markdown, auto-detects titles and tags, and scores freshness at import.

-
-
-

Freshness scoring

-

Entries scored as Fresh, Aging, or Stale based on recency and read frequency. brain prune archives what's stale. brain restore brings it back.

-
-
-

Knowledge trails

-

Auto-computed links between entries. brain trail <topic> follows connections across your team's knowledge.

-
-
-

Interactive search

-

Search results are numbered. Pick one to read it inline. brain search "kubernetes" then select. Records a read receipt.

-
-
-

Works with Obsidian

-

Every brain is an Obsidian vault. Open it for graph view, backlinks, and visual editing. Wikilink footers connect related entries.

+

SQLite FTS5 with BM25 ranking, prefix matching, and contextual snippets. Sub-millisecond queries. Works offline. Index rebuilt from source on every sync.

-

21 commands

-

push, search, list, show, digest, edit, open, ingest, prune, restore, trail, status, and more. All support --format json.

+

MCP-native

+

10 tools and 2 resources via Model Context Protocol. Your AI agent can search, read, edit, and publish entries. brain serve starts the server.

+

Also: repo ingest Β· freshness scoring Β· knowledge trails Β· Obsidian vault Β· 20 commands

+

+ Zero infrastructure. One command to start.
brain connect https://github.com/acme/brain-hub.git

@@ -205,26 +184,21 @@

Quick start

Under the hood

-
-
brain push / brain search / brain digest
-
-
CLI
-
-
-
- Git repo - storage -
-
- SQLite FTS5 - search -
-
- Receipts - analytics -
-
-
+
+       brain push / brain search / brain digest
+                        β”‚
+                 β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
+                 β”‚     CLI     β”‚
+                 β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
+                        β”‚
+       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
+       β–Ό                β–Ό                β–Ό
+  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
+  β”‚ Git repo β”‚   β”‚ SQLite    β”‚   β”‚ Receipts β”‚
+  β”‚ (storage)β”‚   β”‚ FTS5      β”‚   β”‚ (analyticsβ”‚
+  β”‚          β”‚   β”‚ (search)   β”‚   β”‚          β”‚
+  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
+
@@ -248,10 +222,11 @@

Under the hood

diff --git a/website/style.css b/website/style.css index 05e88d5..571f811 100644 --- a/website/style.css +++ b/website/style.css @@ -350,6 +350,14 @@ a:focus-visible { margin-right: 0; } +.section-also { + text-align: center; + font-family: 'JetBrains Mono', monospace; + font-size: 0.85rem; + color: var(--text-muted); + margin: 0 auto 2rem; +} + .section-punch { text-align: center; color: var(--text-secondary); @@ -416,73 +424,17 @@ a:focus-visible { } /* Architecture */ -.arch-diagram { - display: flex; - flex-direction: column; - align-items: center; - gap: 0; - max-width: 600px; - margin: 0 auto 2rem; -} - -.arch-label { - font-family: 'JetBrains Mono', monospace; - font-size: 0.85rem; - color: var(--text-muted); - margin-bottom: 0.5rem; -} - -.arch-arrow-down { - width: 2px; - height: 24px; - background: var(--border); - position: relative; -} - -.arch-arrow-down::after { - content: ''; - position: absolute; - bottom: 0; - left: 50%; - transform: translateX(-50%); - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 6px solid var(--border); -} - -.arch-box { +.arch-pre { font-family: 'JetBrains Mono', monospace; font-size: 0.8rem; - border: 1px solid var(--border); - border-radius: 6px; - padding: 0.75rem 1.25rem; - text-align: center; - background: var(--bg-secondary, #141414); - display: flex; - flex-direction: column; - gap: 0.2rem; -} - -.arch-box--accent { - border-color: var(--accent); - color: var(--accent); - font-weight: 600; -} - -.arch-box .arch-sub { - font-size: 0.7rem; - color: var(--text-muted); -} - -.arch-row { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 1rem; - width: 100%; - margin-top: 0.5rem; + line-height: 1.4; + color: var(--text-primary); + max-width: 600px; + margin: 0 auto 2rem; + overflow-x: auto; } -.arch-accent { +.arch-pre .arch-accent { color: var(--accent); } @@ -577,12 +529,9 @@ a:focus-visible { grid-template-columns: 1fr; } - .arch-row { - grid-template-columns: 1fr; - } - - .arch-diagram { - padding: 0 1rem; + .arch-pre { + font-size: 0.7rem; + overflow-x: auto; } .terminal { diff --git a/website/terminal.js b/website/terminal.js index 829c57f..c008bca 100644 --- a/website/terminal.js +++ b/website/terminal.js @@ -19,13 +19,13 @@ command: 'brain search "kubernetes"', output: 'Found 3 results:\n' + - '+------------------------+--------+-------+-----------+\n' + - '| Title | Author | Type | Tags |\n' + - '+------------------------+--------+-------+-----------+\n' + - '| K8s Deployment Guide | bob | guide | k8s |\n' + - '| CI Pipeline | carol | guide | ci, k8s |\n' + - '| Helm Chart Patterns | alice | skill | helm, k8s |\n' + - '+------------------------+--------+-------+-----------+', + 'β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”\n' + + 'β”‚ Title β”‚ Author β”‚ Type β”‚ Tags β”‚\n' + + 'β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€\n' + + 'β”‚ K8s Deployment Guide β”‚ bob β”‚ guide β”‚ k8s β”‚\n' + + 'β”‚ CI Pipeline β”‚ carol β”‚ guide β”‚ ci, k8s β”‚\n' + + 'β”‚ Helm Chart Patterns β”‚ alice β”‚ skill β”‚ helm, k8s β”‚\n' + + 'β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜', pauseAfter: 2500, }, { @@ -69,7 +69,7 @@ html += '
$ ' + escapeHtml(step.command) + - '
' + + '
' + escapeHtml(step.output) + '
'; if (i < DEMO_SEQUENCE.length - 1) html += '
 
';