velabuild / core
A full-featured AI Optimised CMS admin system, page builder, and content management package for Laravel
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.2
- illuminate/auth: ^10.0|^11.0|^12.0|^13.0
- illuminate/database: ^10.0|^11.0|^12.0|^13.0
- illuminate/notifications: ^10.0|^11.0|^12.0|^13.0
- illuminate/routing: ^10.0|^11.0|^12.0|^13.0
- illuminate/support: ^10.0|^11.0|^12.0|^13.0
- matthiasmullie/minify: ^1.3
- mcamara/laravel-localization: ^2.4
- nuovo/spreadsheet-reader: ^0.5.11
- spatie/laravel-medialibrary: ^11.0|^12.0
- yajra/laravel-datatables-oracle: ^11.0|^13.0
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0
- phpunit/phpunit: ^10.0|^11.0
This package is auto-updated.
Last update: 2026-04-23 05:56:14 UTC
README
The core package for Vela.build — a high-performance, standards-compliant, AI-friendly, extensible CMS built on Laravel.
About
This is the core package — it contains all the CMS logic, models, controllers, AI services, and admin panel. It is installed into Laravel projects as a Composer dependency.
Want to get started quickly? Use the Vela CMS starter project instead — it gives you a pre-configured Laravel application with Vela Core already wired up. Clone it once, customise it, and receive core updates via composer update.
Vela Core provides a full-featured content management system, page builder, and admin panel as a Laravel package. It's designed from the ground up to integrate AI capabilities natively — not as an afterthought — while remaining fast, extensible, and standards-compliant.
Features
- Page Builder — Flexible block-based page builder with rows, blocks, widgets, and templates
- AI-Native — Built-in support for OpenAI, Claude, and Gemini for content generation, image generation, and AI-assisted workflows
- Admin Panel — Complete admin interface with authentication, roles, permissions, and 2FA
- Media Management — Integrated media library with image optimization and cache management (via Spatie Media Library)
- Multilingual — Full i18n support with 10 languages out of the box and translation management tools
- SEO & Analytics — Google Analytics, Search Console, and PageSpeed Insights integration
- Static Site Generation — Generate static HTML and serve cached pages without booting Laravel
- Extensible Registries — Register custom blocks, menus, templates, widgets, and tools via the
Velafacade - Cloudflare Integration — Automatic cache purging and CDN management
- PWA Support — Icon generation and progressive web app configuration
- Figma Export — Design-to-code pipeline with Figma integration
- Queue-Ready — 14 async jobs for AI generation, content processing, translations, and more
- Design System — Project-level
/designsystem/folder (git-tracked) holding brand docs, colour palette, and font choices. The admin block editor uses the palette/fonts as presets; the AI chatbot browses it on demand viadesign_system_*tools instead of getting the whole thing dumped into every prompt. Manage under Settings → Design System; also supports ZIP upload or URL import (e.g. from a Claude-generated design).
Requirements
- PHP 8.1+
- Laravel 10 or 11
Installation
composer require velabuild/core
The package auto-discovers its service provider and facade. Run the install command to publish assets and run migrations:
php artisan vela:install
Configuration
Publish the configuration file:
php artisan vendor:publish --provider="VelaBuild\Core\VelaServiceProvider" --tag="config"
Configuration options include route prefixes, middleware stacks, AI provider settings, template selection, and multilingual setup. See the published config files for full details.
Static File Serving
Vela can generate pre-rendered HTML for public pages via php artisan vela:generate-static. When a matching static file exists, the page is served directly without booting Laravel — dramatically reducing response times and server load.
If you're using the CMS starter project, this is already configured in public/index.php. If you're integrating Vela Core into an existing Laravel app, add the static file front-controller to the top of your public/index.php (before the Laravel bootstrap). It works by:
- Reading
VELA_CACHEfrom.envdirectly (lightweight file parse, no framework needed) - Mapping GET request URIs to pre-rendered HTML files in
resources/static/ - Serving the static file with cache headers and exiting — Laravel never boots
- Falling through to normal Laravel bootstrap when no static file matches
Admin, auth, and API routes are automatically excluded. Static files are regenerated on content changes or manually via php artisan vela:generate-static. Set VELA_CACHE=false in .env to disable.
See the CMS starter's public/index.php for the reference implementation.
Usage
Writing a plugin
Vela plugins are Laravel packages that register with Vela's extension points (blocks, menus, templates, widgets, tools). The canonical walkthrough — including the service-provider template, the vela-page-editor-blocks JS extension point, permission seeding, and the no-DB safety rules — lives in docs/plugins.md.
The reference implementation is velabuild/snippets — a real, small plugin that adds a Snippets admin page + a Snippet Page Builder block. Read its SnippetsServiceProvider alongside the plugin doc.
Registering a block (quick example)
use VelaBuild\Core\Vela; $vela = $this->app->make(Vela::class); $vela->registerBlock('my-block', [ 'label' => 'My Block', 'icon' => 'fas fa-cube', 'view' => 'my-namespace::public.block', // public render 'editor' => 'my-namespace::admin.block-form', // admin editor 'defaults' => ['content' => [], 'settings' => []], ]);
Registering a template
$vela->registerTemplate('my-template', [ 'label' => 'My Template', 'path' => __DIR__.'/resources/views/templates/my-template', ]);
Artisan Commands
Vela ships with CLI commands for common tasks:
| Command | Description |
|---|---|
vela:install |
Initial setup and migration |
vela:app-init |
Initialize application configuration |
vela:app-build |
Build application assets |
vela:create-content |
Scaffold new content types |
vela:import-content |
Import content from external sources |
vela:generate-image |
AI image generation |
vela:ai-wizard |
Interactive AI content assistant |
vela:generate-static |
Generate static site files |
vela:theme-check |
Validate theme configuration |
vela:cleanup-image-cache |
Purge optimized image cache |
Run php artisan list vela for the full list.
Testing
composer test
Or directly with PHPUnit:
vendor/bin/phpunit
Contributing
Contributions are welcome! Please read our Contributor License Agreement before submitting a pull request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a pull request
By submitting a pull request, you agree to the terms of our CLA.
Security
If you discover a security vulnerability, please email m@awcode.com instead of opening a public issue.
License
Vela Core is open-source software licensed under the MIT License.