Addons (ZIP Installer)
Extend MailTrixy with packaged ZIP addons. Upload, activate, configure — no FTP, no composer require, no manual migrations. Each addon ships its own routes, migrations, service provider, views, and admin settings page.
Where to find it
Admin → left sidebar → Addons (under the System section). Direct URL: /admin/addons.
Installing an addon
- Buy/download the addon ZIP file (e.g.
instagram-addon-v1.0.0.zip). - Log into MailTrixy as super admin → Admin → Addons.
- In the Install Addon panel, click Choose File and pick the ZIP.
- Click Upload & Install. MailTrixy extracts the ZIP, validates the
addon.jsonmanifest, copies files intoaddons/{slug}/, and registers the addon in theaddonstable with statusinactive. - The addon appears in the Installed Addons list at the bottom of the page.
- Click Activate. MailTrixy runs the addon's migrations (creates tables, alters columns, seeds data), registers its routes, service provider, and views, then flips status to
active. - If the addon ships an admin settings page (declared via
settings_urlin its manifest), a Settings button appears on its card. Click it to configure.
Atomic activation: if migrations fail, the addon stays inactive and shows an error. You can fix the issue and retry without leaving a half-activated mess in the DB. Status only flips to active on full success.
Managing installed addons
Each addon card on the Addons page has three action buttons:
- Settings (visible if the addon declares
settings_urlin its manifest) — opens the addon's own admin page. - Deactivate — takes the addon offline. Routes and service provider stop loading on the next request. Files stay on disk; DB tables stay intact — reactivation is instant.
- Activate (when deactivated) — brings the addon back online.
- Uninstall — deletes the addon's files from
addons/{slug}/. DB tables and data are kept on disk in case you want to reinstall later. Manual cleanup is required if you want to fully purge.
Anatomy of an addon ZIP
Every addon ZIP must contain an addon.json manifest at its root (either flat or inside a single top-level folder). Example structure for the Instagram addon:
instagram/
├── addon.json (manifest)
├── README.md (optional setup notes)
├── routes.php (Route definitions)
├── migrations/
│ └── 2026_05_26_120100_add_instagram_channel.php
├── src/
│ ├── Http/Controllers/
│ ├── Models/
│ ├── Providers/
│ └── Services/
└── views/
└── settings.blade.php
addon.json manifest
{
"slug": "instagram",
"name": "Instagram Direct Messages",
"version": "1.0.0",
"author": "MailTrixy",
"description": "Send and receive Instagram DMs from inside the inbox.",
"settings_url": "/admin/addons/instagram/settings",
"provider": "MailTrixy\\Addons\\Instagram\\Providers\\InstagramServiceProvider",
"namespace": "MailTrixy\\Addons\\Instagram"
}
slug— filesystem-safe identifier (no spaces, no slashes). Used as the folder name and DB row key.name— human-readable name shown in the addons list.version— semver. Bump when shipping updates.provider— fully qualified Service Provider class name. Loaded by AddonManager on every request when the addon is active.namespace— PSR-4 namespace prefix mapped tosrc/. Lets your addon use namespaced classes without composer.settings_url— (optional) URL of the addon's admin settings page. When present, a Settings button appears on the addon card.
For developers — how to build an addon
- Create a folder
addons/your-slug/with the structure above. - Write your
addon.jsonmanifest. - Build a Service Provider class. Register routes, views, blade components, and singletons in its
register()andboot()methods. - Write migrations under
migrations/. They run automatically on activate. - Test locally by manually inserting an
addonstable row with your slug, then click Activate in the admin UI. - When ready to distribute, ZIP the addon folder: in PowerShell,
Compress-Archive -Path addons\your-slug -DestinationPath your-slug-v1.0.0.zip.
Security note: uploaded addon code runs with full application privileges — only install addons from sources you trust. The admin UI shows a clear warning about this. MailTrixy validates ZIP structure and prevents path traversal during extraction, but doesn't sandbox the code itself.
Available addons
- Instagram Direct Messages — send/receive Instagram DMs from the inbox via Meta Graph API. First-party, bundled with v1.4.
More addons (Facebook Messenger, TikTok DMs, Discord, etc.) ship separately and can be installed at any time.