Custom Add-on Development

Larapen add-ons follow a Laravel package-like structure. Here's how to create one from scratch.

Directory Structure

extensions/addons/my-addon/
├── addon.json
├── config/my-addon.php
├── src/
│   ├── MyAddonServiceProvider.php
│   ├── Http/Controllers/
│   ├── Models/
│   ├── Services/
│   └── Routes/
├── resources/views/
├── resources/lang/
└── database/migrations/

addon.json

The manifest file defines your add-on's metadata, dependencies, and provided features (admin menu entries, menu item types, etc.).

ServiceProvider

Your service provider registers routes, migrations, views, translations, and config. It extends the base Illuminate\Support\ServiceProvider.

Database Tables

Important: All add-on tables must be prefixed with the add-on name (e.g., my_addon_items) to prevent naming collisions.

Views

Add-on views can be overridden by themes. Place your default views in resources/views/ and they'll be resolved with theme override support automatically.

Was this article helpful?

Thank you for your feedback!

Still need help? Create a support ticket

Create a Ticket