Heisenberg v0.0.1 - first public release
The first tagged release of Heisenberg: a block-based content engine and bilingual blog backend for Laravel, with zero host coupling - your app keeps its users, routes and pages; Heisenberg brings the editor and the content model.
composer require heisenberg/heisenberg
php artisan migrate
php artisan storage:linkOpen /editor and start writing.
Highlights
🧱 Block engine & editor
- Twelve block types — headings, paragraphs, images, buttons, quotes, lists, icons, separators, embeds, and nestable groups/columns — each defined by a JSON contract, validated server-side, rendered through a sanitizing pipeline
- Full authoring chrome: inspector, floating toolbar, navigator tree, undo/redo, revisions, autosave with optimistic locking, drag & drop, dark mode
- Visual ⇄ Code view: the whole document round-trips through a compact shortcode dialect
📝 Content management
- Post lifecycle: draft → review → published / scheduled / archived, tier-gated
- Categories & tags, featured image, authored table of contents, per-post layout and discussion settings
- Bilingual (
en/fr) editor UI and per-locale content columns
🖼️ Media library
- Drag-drop uploads with per-file progress cards, responsive image variants, bilingual alt/caption metadata
- Virus-scan seam, extension allowlist, collision-safe naming, no PHP in the public read path
- Role-scoped permissions: viewers browse, authors upload and manage their own, editors manage all
🔌 Built for integration
- No native users — your users authorize through the
RoleGatecontract with four canonical roles (admin/editor/author/viewer), read from Spatie permissions or a plainrolecolumn - Host-owned templates — point
template_rootat your app, declare page chrome (featured image, TOC, comments, breadcrumbs, share…) in a validated JSON contract, render with your own Blade views - Provider contracts with null defaults for everything Heisenberg doesn't own: comments, post views, related posts, SEO meta
🤖 AI writing assistant & MCP
- Bring your own provider (Anthropic, OpenAI, or any OpenAI-compatible endpoint) — keys stored write-only and encrypted
- The assistant writes to the live canvas through validated tool calls, streams its reasoning, and remembers conversations
- MCP both ways: connect external MCP servers to the assistant, or expose Heisenberg as a draft-only, bearer-token MCP server for external agents
Requirements
PHP ^8.2 · Laravel 11 / 12 / 13 · Livewire ^4.3
Optional: intervention/image ^3.9 for responsive variants (v4 is not compatible)
Documentation
Start with the README; the full specification lives in docs/.