Extending the editor

Prefer declarative markers

For static Tailwind sections, mark HTML with data-vb-* so the Content sidebar appears without custom PHP or JS. See Declarative fields.

Custom inspector UI

When built-in field types are not enough, register a block settings descriptor from your editor JS bundle (registerBlockSettings). Match a block id, render controls into the Content mount, write values back onto the canvas.

Server-rendered companion blocks keep their own config + render path (for example pricing blocks) — do not mix that with declarative static sections.

Dynamic data

Expose Eloquent models through Model Integrations (Dynamic Data) or API Data Sources (Agency). Authors bind from the Dynamic tab; do not invent parallel config stores in page HTML for those values.

Assets

Theme CSS and the editor compile through the host Vite app. After package updates, re-run php artisan voodbuilder:install or npm run build as documented in Frontend build.