Skip to content

Heisenberg v0.0.1 - first public release

Choose a tag to compare

@tedydonel tedydonel released this 10 Aug 17:37
· 76 commits to master since this 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:link

Open /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 RoleGate contract with four canonical roles (admin / editor / author / viewer), read from Spatie permissions or a plain role column
  • Host-owned templates — point template_root at 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/.