cybertroniankelvin/graper
Filament plugin that brings a GrapesJS v3 drag‑and‑drop page builder to your admin panel. Create pages with blocks (hero, CTA, testimonials, etc.), edit on-canvas, save to the database, publish by slug, and register your own custom blocks.
GraperPage) to store page content (HTML, CSS, project data), enabling versioning, API access, and programmatic manipulation. This fits well with Laravel’s ORM-centric architecture.AdminPanelProvider. This is a low-risk integration point with minimal boilerplate./pages/{slug}, /graper/api/*) are configurable via graper.php config, reducing the risk of conflicts with existing routes. Custom route prefixes can be set to avoid overlaps.Customization Depth:
Performance Impact:
Content Management Workflow:
Extensibility:
Security:
/graper/api/*)? Are there risks of XSS or CSS injection in user-generated HTML/CSS?Scaling:
graper_pages table?Preparation:
/pages/*, /graper/api/*).Installation:
composer require cybertroniankelvin/graper
php artisan graper:install
This publishes the config, runs migrations, and sets up the graper_pages table.app/Providers/Filament/AdminPanelProvider.php:
public function panel(Panel $panel): Panel {
return $panel->plugins([
GraperPlugin::make(),
]);
}
Configuration:
php artisan vendor:publish --tag=graper-config
config/graper.php to set route prefixes, block defaults, or other settings.Customization:
Block class and registering them in a service provider:
BlockRegistry::make()->register(CustomBlock::class);
routes/web.php or routes/api.php as needed.@php
$page = \Cybertroniankelvin\Graper\Models\GraperPage::where('slug', 'about')->first();
@endphp
{!! $page->html !!}
<style>{!! $page->css !!}</style>
Testing:
Deployment:
graper_pages table. Compatible with MySQL, PostgreSQL, SQLite, and SQL Server.How can I help you explore Laravel packages today?