Three phases. /b2 tracks where you are and tells you exactly one next action — no guessing what to do next.
/plugin install b2@bofrese-plugins
/b2:talkTalk through your ideas before committing to anything. This isn't a required step — it's a thinking tool. A communication strategist persona pushes back on vague answers and extracts what makes the site specific to you.
What gets saved: stories, competitive positioning, voice observations, raw material. Stored in docs/notes/ and read automatically by every setup command that follows.
Run it before you start. Come back to it when content feels stuck. Run it after launch to sharpen the next iteration.
Each command is a prerequisite for the next. The ordering is enforced, not suggested.
The first interview. Answer questions about who you're building for, what success looks like, and what the site is actually for. B2 uses Mom Test principles — past behaviour and concrete facts only. "I want to look professional" doesn't pass.
Brand is decisions, not decoration. One interview produces your tagline, competitive positioning, tone of voice tested against real scenarios, your primary CTA (forced to one), and the list of what the site deliberately does not say.
What pages exist? What content types recur — posts, case studies, products? What's the user journey? What goes in the nav? B2 creates stub markdown files for every page so nothing gets forgotten. Structure approved before anything is written.
World-class copywriter persona. Reads brand voice from ai/decisions.md. Harvests existing content — paste a URL, file, or raw text. Proposes an outline before writing anything. Writes to the correct path with correct frontmatter.
Interview → written brief → three concurrent mockups → iteration → theme generation. Three mockups, not variations. Each has a different layout approach, typographic hierarchy, and spatial logic. You pick a direction, not a colour scheme.
Converts stale .md source files to semantic HTML partials using git history to detect changes. If a partial exists, integrates changes surgically — preserves structure, doesn't regenerate from scratch.
Theme verified, b2.cfg written, directories confirmed, first build runs. If it works, you're live. If not, B2 reports what's wrong — it doesn't auto-fix. GitHub Pages, Netlify, or any webhost.
Once setup is complete, the daily workflow is simple and predictable.
/b2:build handles the full pipeline: detects stale files, calls sync if needed, assembles dist/. One command — no manual steps.
/b2:website-review screenshots pages, evaluates them against your design system, and fixes layout issues directly in the partials. Run /b2:serve first.
/b2:seo audits the full site — fixes what it can automatically, asks exactly one question before fixing the rest, and resizes images to WebP at the correct dimensions.
Edit markdown. Build. Serve. Review. Optimise for search. Each command handles one thing well — and /b2 always tells you what to do next.
No database. No platform dependency. No lock-in.
website/src/*.md — you write and edit thesewebsite/partials/*.html — AI-generated semantic HTML. Never edit manually.website/theme/{name}/ — the visual layer: CSS, header, footer, component vocabulary, design reference.website/dist/ — assembled output. Never edit manually — always overwritten by build.When you outgrow B2, you have clean source files you can hand to a developer or migrate to a more complex system.
Full documentation →