Web admin panel

Motivation

This package is headless — it owns the data, the services, and the API. For teams that want a UI
without building one, the companion package
padosoft/laravel-invitations-admin ships a
polished React + Tailwind admin SPA over this package’s HTTP API.

What it provides

A virality dashboard plus management screens for the whole acquisition suite:

Dashboard

K‑factor, acceptance / conversion funnel, time‑to‑redeem percentiles — the analytics read model visualized.

Campaigns & codes

Create campaigns, mint and revoke codes, set reward policies and grants.

Invitations

Who was invited vs. who accepted — the email invitation read model.

Referrals & rewards

The referral graph and the reward ledger with reversal.

Waitlist

The queue‑jump waitlist and invite‑from‑top.

Anti‑abuse review

The abuse signals audit trail (hashed subjects).

Deployment model

  • Requires the core padosoft/laravel-invitations package.
  • Prebuilt assets are published — no JS toolchain to install in your app.
  • Default‑OFF, host‑gated — a feature flag mounts the Blade SPA; when the flag is off the routes
    degrade to a clean 404, never a crash (the host platform’s R43 both‑states rule).
  • For apps that already run their own React SPA, the screens can be adapted natively instead of
    cross‑mounting — they call the same core HTTP API.
flowchart LR SPA[invitations-admin React SPA] -->|HTTP API| Core[padosoft/laravel-invitations] Core --> DB[(tenant-scoped tables)]

Install

composer require padosoft/laravel-invitations-admin
# then enable the host-gated mount flag and publish the prebuilt assets per that package's README

The admin SPA is a consumer of the core API — it adds no new business logic. Everything it shows is
served by the services documented here, so the HTTP API is the contract
between them.