// the page builder
An editor that
writes Blade.
Drag in sections, columns, blocks. On every save, the builder writes static Blade files to disk. No dynamic rendering in production, no technical debt — just compiled, fast HTML.
blocks
properties
display
gap
scoped CSS
// the workflow
From screen to file, in one save.
01
Drag a block
Sections, columns, blocks from the sidebar. Drag & drop, reorderable, nestable.
02
Edit
Inline or in a CodeMirror modal for CSS / HTML. CSS scoped per block, dark-mode support.
03
Save
The BladePageGenerator writes a static Blade file to disk. In production: zero dynamic rendering.
// what you can do
Built for real projects.
Scoped CSS per block
Each section has its CSS isolated by #section-id, with html.dark support for dark mode.
CodeMirror editing
CSS / HTML editing modal with syntax highlighting, right inside the builder.
Native multilingual
One page, several locales. Copy content from one language to another in one click.
Shared sections
Reuse a section across several pages. One edit propagates everywhere.
Responsive per column
Independent breakpoints on each column: stacked on mobile, grid on desktop.
Roles & visibility
Mark blocks as dev_only: invisible to non-developer users.
Import / export JSON
Export a page or a block, re-import it elsewhere. Versionable, shareable.
20+ native blocks
Heading, columns, slider, pricing, form, map… and each module adds its own.
// extensible
Each module
brings its own blocks.
The builder doesn't know your blocks in advance: it discovers them. A module declares its types via getBuilderConfig(), and the BuilderManager exposes them in the editor. You write a generator, you get a block — drag & drop, properties, Blade rendering.
Découverte auto via getBuilderConfig()
Un générateur PHP = un bloc dans l'éditeur
Namespace isolé : Punky\{Module}
public function getBuilderConfig(): array { return [ 'blocks' => [ 'product-grid' => [ 'label' => 'Product grid', 'generator' => ProductGridGenerator::class, 'icon' => 'grid', ], ], ]; }
↑ the block shows up in the builder sidebar