FOR THE PEOPLE WHO BUILD
Laravel at heart.
Yours to extend.
A ready-made visual editor, portable structured content, and a small PHP-and-Blade contract for your own blocks.
What you install.
Platno is the Laravel package. It provides the editor, page management, private drafts, publication history, media and Blade rendering. The normal path needs no Node build, frontend framework or paid service.
This website is a separate demo application. It adds the visual presentation, sample content, private 24-hour spaces and cleanup. Those lifetime rules are not part of the package.
Install the Experimental Preview ↗One editor.
Your framework.
Vue, React and Livewire mount the same native JavaScript editor directly in your application, using Shadow DOM. Your application owns its routes and access rules. Platno does not supply authentication.
Start a demo, then use the integration selector in the studio. Every integration edits the same page in your own space.
<PlatnoEditor
editor-address="/platno/pages/42/edit"
@change="handleUnsavedChanges"
@state="handleSavedRevision"
/>The adapters are examples to copy into your application. They currently edit Platno pages; binding an arbitrary model field is not implemented.
Integration code and lifecycle contract ↗Your first block.
The templates use standard Platno blocks plus two demo-owned examples: Hero and Quote. Their PHP definitions and Blade templates are part of this demo's source.
php artisan platno:make-plugin Callout --type=example.calloutDefine the fields, validate the data and render it in Blade. The editor generates the inspector from those fields. The canvas and published page use the same renderer.
Build a custom block ↗Inspect the demo plugins ↗
From draft
to published.
Saving changes your private draft. Publishing creates a snapshot of that saved revision. Later edits stay private until you publish them again. Revision checks prevent a stale browser from silently overwriting newer content.
In this demo, published links and uploaded media expire with the workspace. The package itself imposes no such expiration.
Experimental
by design.
This is a pre-alpha working prototype. APIs and content formats may change, and it is not ready for production use.
Current boundaries include no collaborative editing, raw HTML, automatic plugin-data migrations, image cropping or derivatives. SQLite and local storage have been verified; other database engines and remote disks have not.
Compatibility and verification ↗Share feedback or report a bug ↗