Getting Started
Dashboard
For Developers
Krikkit ships with a Deep42 marketplace and a local addon runtime. Addons are separate zip packages (free or paid) that install under extensions/{Folder}/ without patching core files.
Admin UI: Dashboard → Marketplace
Install path: extensions/ (configurable via KRIKKIT_EXTENSIONS_PATH)
Product updates never overwrite extensions/ (buyer-installed addons are preserved).
Zip root may be a single folder (flattened on install) or flat files:
Xero/
addon.json # required (extension.json also accepted)
bootstrap.php # optional fallback if no provider
uninstall.php # optional cleanup hook
src/
XeroServiceProvider.php
…
database/migrations/ # optional; run on install
resources/views/
routes/ # optional; register from the provider
{
"name": "Xero",
"slug": "xero",
"version": "1.0.0",
"type": "extension",
"description": "Sync paid invoices to Xero",
"namespace": "Addon\\Xero\\",
"provider": "Addon\\Xero\\XeroServiceProvider",
"min_krikkit": "2.1.0",
"requires": []
}
| Field | Purpose |
|---|---|
slug | Marketplace id (stable) |
namespace | PSR-4 prefix → src/ (no composer dump needed) |
provider | Laravel service provider class |
min_krikkit | Reject install on older cores |
requires | Other addon slugs that must be installed first |
Build the package outside the buyer ServerFiles tree (private repo / CI). Zip the folder and publish it on Deep42 Market as free or paid for product krikkit. Buyers install only from Dashboard → Marketplace.
zip -r xero-1.0.0.zip Xero -x '*.DS_Store' -x '*__MACOSX*'
No artisan scaffold ships in the product — keeps CodeCanyon updates free of leftover stubs and dev commands.
use App\Market\Addon;
if (Addon::installed('xero')) {
// …
}
Blade:
@addon('xero')
…
@endaddon
Prefer feature detection (Addon::installed) over hardcoding provider class names in core. Optional soft hooks (class_exists) are fine when an addon extends a core screen.
On every request, Krikkit:
site_settings → market.installed)provider (or bootstrap.php)Uninstall calls ServiceProvider::uninstall() (if present) and uninstall.php, then deletes the folder.
Deep42 catalog fields drive install rights:
licensed: true — allowed (includes purchased and free grants)is_free: true or price <= 0 — allowed without purchaseCore never ships paid addon PHP inside ServerFiles; distribution is always the marketplace zip.
Operators open Finance → Xero after install to connect OAuth, map tax treatments / clearing accounts, then paid invoices sync automatically (queue xero). Full setup: Xero.
Operators open Payment Methods → BTCPay after install, connect their self-hosted BTCPay Server (Greenfield API + signed webhooks). Checkout redirects to BTCPay; packs unlock on InvoiceSettled after amount re-check. Full setup: BTCPay.
Operators open Cloudflare R2 after install, add R2 API credentials and choose scopes (site media, published Lab sites, workspaces). Core remaps storage through ObjectStorage. Full setup: Cloudflare R2.
Operators open API Integration → OpenRouter after install and paste an OpenRouter API key. Lab then lists the addon’s model catalog (Claude, GPT, Gemini, Grok, DeepSeek) on that one key. Full setup: OpenRouter.
Operators open API Integration → Cloudflare AI Gateway after install and paste the Cloudflare account ID plus an API token with Workers AI Read. Lab lists the addon’s model catalog on that account. Full setup: Cloudflare AI Gateway.
typeextension or theme |