Content lifecycle
Create series, upload video via Cloudflare Stream, localize EN/AR/ID, schedule drops, publish or archive.
The TwistCue Admin Panel is the operator surface for the TwistCue vertical-drama platform. It ships 47 admin routes, 6 built-in roles, and 5 background crons, backed by a NestJS API and a Postgres double-entry coin ledger. Everything you can do in the panel maps to a permission-guarded endpoint under /v1/admin/*.
Content lifecycle
Create series, upload video via Cloudflare Stream, localize EN/AR/ID, schedule drops, publish or archive.
Users & support
Search by email/phone/device, inspect User 360, adjust coins ledger-correct, suspend/ban/reactivate, GDPR anonymize.
Money
Unified transactions across 5 rails, refunds with automatic ledger reversal, pricing overrides, coin packages, promos, reconciliation.
Analytics
Retention cohorts, revenue by rail/country, per-episode drop-off, funnel, all served from hourly rollup tables.
Engagement
Segments, push composer with the hard 3/day cap surfaced pre-send, streaks and rewards tuning.
Moderation
Comment queue with strikes → auto-ban at 3, reports queue with cascade actions.
| Admin UI routes | 47 |
API endpoints under /v1/admin/* | ~120 |
| Built-in roles | 6 (superadmin, content_manager, moderator, support, analyst, finance) |
| Permissions | ~30 resource:action strings |
| Background crons | 5 (publish-scheduler, media-sync, rollups-hourly, free-series-rotation, push-scheduler) |
| Rollup tables | 3 (rollup_revenue_daily, rollup_series_daily, rollup_funnel_daily) |
| Payment rails | 5 (Stores/IAP, cards, dLocal, pawaPay, VAS/DCB) |
| Launch languages | 3 (EN, AR, ID) |
The panel enforces the platform’s product rules. You can’t override them from the UI:
cliffhanger_score.AuditLog entry with before/after diff.See Constants & business rules for the full list.