Build on
ChargePanda
Create modules that extend the platform for thousands of users. Full Laravel package architecture, admin panel integration, account portal views, REST API access, and a marketplace to distribute your work.
{
"name": "My Module",
"slug": "my-module",
"version": "1.0.0",
"description": "Extends ChargePanda...",
"provider": "Modules\\MyModule\\ServiceProvider",
"author": "Your Name",
"requires": {
"core": ">=3.0.0"
}
}
What is a ChargePanda module?
Modules are self-contained Laravel packages that integrate directly with the ChargePanda core — adding admin pages, account portal UI, database tables, background jobs, and API endpoints.
Self-contained package
Each module has its own migrations, service provider, views, and routes — all isolated from the core. Modules can't break each other.
Dependency system
Declare dependencies in module.json. The module manager resolves and validates them at activation — no broken installs.
Zero-downtime install
Customers upload a ZIP or click install. Migrations run automatically. Service provider registers. No server restart required.
Module anatomy
A module is a standard Laravel package with a ChargePanda manifest. If you can write a Laravel service provider, you can build a module.
modules/
└── my-module/
├── module.json ← manifest
├── src/
│ ├── MyModuleServiceProvider.php
│ ├── Http/Controllers/
│ ├── Models/
│ └── Services/
├── database/migrations/
├── resources/views/
│ ├── admin/ ← admin panel
│ └── account/ ← customer portal
└── routes/
├── admin.php
└── account.php
{
"name": "Payment Recovery",
"slug": "payment-recovery",
"version": "1.0.0",
"description": "Dunning & failed payment recovery",
"provider": "Modules\\PaymentRecovery\\ServiceProvider",
"author": "Acme Dev",
"author_url": "https://acmedev.com",
"requires": {
"core": ">=3.0.0"
},
"settings": [
{
"key": "retry_attempts",
"type": "integer",
"default": 3
}
]
}
namespace Modules\MyModule;
use App\Services\AdminNavService;
use App\Events\OrderPaid;
use Illuminate\Support\ServiceProvider;
class MyModuleServiceProvider extends ServiceProvider
{
public function boot(): void
{
// Register admin nav entry
AdminNavService::add('My Module', route('my-module.index'), icon: 'ti-plug');
// Listen to core events
Event::listen(OrderPaid::class, [MyOrderListener::class, 'handle']);
// Load module routes, views, migrations
$this->loadRoutesFrom(__DIR__.'/../routes/admin.php');
$this->loadViewsFrom(__DIR__.'/../resources/views', 'my-module');
$this->loadMigrationsFrom(__DIR__.'/../database/migrations');
}
}
What you get access to
Everything you need to build a production-grade module without reinventing infrastructure.
Core events
OrderPaid, LicenseActivated, SubscriptionRenewed, SubscriptionCancelled, TicketCreated — all fired with full model data. Listen in your service provider, trigger anything.
Admin panel nav
Register sidebar entries, sub-nav sections, and dashboard widgets via AdminNavService. Your module feels native to the admin panel.
Account portal UI
Add pages to the customer-facing account portal. Customers see your module's UI alongside their orders, licenses, and subscriptions — same design system.
Background jobs
Dispatch jobs on the shared queue worker. Long-running tasks (AI processing, report generation, email sequences) run asynchronously without blocking requests.
REST API extension
Register new endpoints under /api/modules/{slug}/. Full middleware stack, authentication, and rate limiting inherited from the core.
Settings storage
Declare settings in module.json. ChargePanda auto-generates an admin settings UI and stores values in the settings table. No boilerplate.
Full Composer ecosystem
Your module is a standard Laravel package. Use any Composer dependency — Guzzle, Spatie, OpenAI PHP — without conflicts.
Migrations & rollback
Module migrations run on activation, roll back on deactivation. Clean installs and clean uninstalls, every time.
Study a real module
The Envato Integration module is open for inspection once installed. Use it as a working reference implementation.
Envato purchase-code verification, license key issuance, OAuth login, and auto-claim. Shows how to build API-integrated modules with event hooks, admin CRUD, and customer account portal sections.
View module →Submit your module to the marketplace
Reach all ChargePanda users. List your module in the marketplace and manage distribution, versioning, and updates through the platform.