Skip to content

TwistCue Admin

The operator handbook for TwistCue, content, money, users, and everything in between.

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 routes47
API endpoints under /v1/admin/*~120
Built-in roles6 (superadmin, content_manager, moderator, support, analyst, finance)
Permissions~30 resource:action strings
Background crons5 (publish-scheduler, media-sync, rollups-hourly, free-series-rotation, push-scheduler)
Rollup tables3 (rollup_revenue_daily, rollup_series_daily, rollup_funnel_daily)
Payment rails5 (Stores/IAP, cards, dLocal, pawaPay, VAS/DCB)
Launch languages3 (EN, AR, ID)

The panel enforces the platform’s product rules. You can’t override them from the UI:

  • 1 coin = $0.01 USD. Always. Every currency display shows the equivalent.
  • Balance is derived, never edited. Every wallet change is a double-entry ledger event.
  • No paywall or ad at cliffhanger episodes. Enforced by cliffhanger_score.
  • Max 3 pushes/day per user. Server-side hard cap; the composer previews who will be dropped.
  • Two-person rule for refunds > $50, coin grants > 2000, series deletion, role changes.
  • Support coin-grant cap: 500 coins/user/day.
  • Every mutating endpoint writes an AuditLog entry with before/after diff.

See Constants & business rules for the full list.