Content OS

Client Portal

The approval gate in the middle of the pipeline. One screen, three tabs.

1 screen - 5 API routes - no user table

Read the full spec

Sign in

One env-provided credential for the whole portal. No self-registration.

  1. /login
  2. Rate limit
    10 per minute per IP
  3. CLIENT_* env
    constant-time compare
  4. customers row
    upserted on first login
  5. Tenant gate
    no tenant, no entry

Review today's stories

One card at a time, keyboard-driven. Y approves, N skips.

  1. content_news_items
    scored, by day
  2. Three queues
    Blogs - News - Competitors
  3. Y / N
    optimistic, reversible
  4. Script queue
    rows added or deleted
  5. Job
    origin: "client"
  6. Poll 5 min
    writing... -> ready

Review the script

Production notes are stripped at the data layer, not hidden in the UI.

  1. content_scripts
    30s / 60s / 120s
  2. toClientVersions
    drops b-roll, notes, scores
  3. Four sections
    hook - script - caption - keywords
  4. Approve / send back
  5. Copy or WhatsApp
    client-side only