Skip to content

What the panel is

A self-hosted panel that turns a payment into an account, a license key, and a gated download.

2 min read

The panel is a self-hosted application you install on your own server. It sits between your payment provider and your customers, and it owns everything that happens after the money arrives: creating the account, issuing the license key, tracking which domains that key is activated on, and deciding whether a given customer is still entitled to the version they are trying to download.

It is deliberately not a storefront. You sell through Paddle’s checkout overlay or through a lifetime-deal marketplace, and the panel reacts to what those systems tell it.

The two halves#

Every install contains two separate interfaces, each with its own layout, navigation, and access rules.

  • The admin panel, at /admin. Products, plans, versions, orders, subscriptions, users, redeem codes, referrals, refund requests, webhook logs, analytics, and settings.
  • The customer panel, at /panel. Your customers sign in here to see their subscriptions, copy their license key, manage activated domains, download versions, review orders, request refunds, and track referral earnings.

What runs it#

Framework Laravel 13
Language PHP 8.3 or newer
Database MySQL 8 or newer
Front end Blade templates, Tailwind CSS, Alpine.js — server-rendered, no single-page framework
Payments Paddle, as merchant of record
Interface languages 11, switchable per user

You get the full, readable PHP source. Nothing is obfuscated or compiled.

The core idea: Paddle is the source of truth#

The panel never takes a card number and never decides on its own that someone has paid. Every purchase, renewal, cancellation, pause, and refund arrives as a signed webhook from Paddle, and the panel updates its own records to match.

That has one consequence worth internalising early: if a subscription looks wrong in the panel, the answer is almost always in the webhook log, not in the database. See Webhook logs and retries.

What a sale looks like end to end#

  1. A buyer completes Paddle’s checkout on your marketing site.
  2. Paddle sends a transaction.completed webhook to your panel.
  3. The panel finds or creates the user, records the order and transaction, and issues a subscription with a fresh license key.
  4. The buyer receives a welcome email with a signed link to set their password.
  5. They sign in to /panel, copy their license key, and download the current version.
  6. Your software calls the panel’s license API to verify that key and register the domain it is running on.

Steps 2 through 4 need no action from you.