canvas
Publishing on your own terms
git clone https://github.com/austintoddj/canvas.gitaustintoddj/canvasAbout Canvas
Canvas is an open-source publishing platform for Laravel. Drop it into an existing application, use your own authentication, and start writing.
- Distraction-free editor with tags, topics, and media uploads
- Monthly trends and reader insights
- Contributor, Editor, and Admin roles
- Integrations: Unsplash, AI writing, outbound webhooks, and weekly digest
- Optional starter reader frontend via
canvas:ui
Requirements
- PHP >= 8.3
- Laravel >= 12
- Working authentication for the guard Canvas uses (
webby default)
Installation
composer require austintoddj/canvas php artisan canvas:install
Grant admin access to an existing user:
php artisan canvas:make-admin your@email.com
Visit /canvas.
Optional Frontend
Use the canvas:ui Artisan command to publish a starter reader frontend — Blade views, a controller stub, and routes. It gets you a public blog at /canvas-ui without building one from scratch. Customize whatever you like!
php artisan canvas:ui
Visit /canvas-ui.
Upgrading
Canvas follows Semantic Versioning and increments versions as MAJOR.MINOR.PATCH.
- Major versions may contain breaking changes — follow the upgrade guide for a step-by-step breakdown.
- Minor and patch versions should never contain breaking changes, so you can safely update by following the steps below.
composer update austintoddj/canvas php artisan canvas:publish
To publish assets automatically after Composer updates, add this to your application’s composer.json:
{
"scripts": {
"post-update-cmd": ["@php artisan canvas:publish --ansi"]
}
}
Contributing
Thank you for considering contributing to Canvas! The contribution guide can be found here.
Testing
composer test
License
Canvas is open-sourced software licensed under the MIT license.
more like this