{{ TENANT.brand|upper }} Admin
V2 — Studio Platform
Supabase
{{ 'Connected' if stats.supabase_ok else ('Error: ' + stats.supabase_error) }}
Anthropic API
{{ 'Key configured' if stats.api_key_set else 'Missing — AI disabled' }}
FAL (Image Gen)
{{ 'Key configured' if stats.fal_key_set else 'Missing — images disabled' }}
Stripe
{{ 'Key configured' if stats.stripe_key_set else 'Missing — payments disabled' }}
5 musician · 5 fan · 5 label
Idempotent — safe to click twice. Uses FAL credits (~15 image generations on first run; reuses existing avatars on subsequent runs).
Welcome · Synopsis · Cherry-breaker · Stripe links — across every project
Open Bulk Editor →
Bulk view + edit of welcome / synopsis / cherry-breaker / Stripe across every project. AI drafting lives on each project's own /invest-manage page now.
Hospital · Jail · Courtroom · Office · Police car · Dive bar · Alley · Hotel · Warehouse · White cyc
Uses FAL credits (~10 image generations). Backgrounds are saved to /static/backgrounds and used by the Musician Studio booth + Private Deal Room.
Total Users
{{ stats.users }}
Total Projects
{{ stats.projects }}
Active Subs
{{ stats.active_subs }}
Trial Users
{{ stats.trial_users }}
Last 20 Created
{{ projects_list[:20] | length }}
{% if projects_list %} {% for p in projects_list[:20] %} {% endfor %}
TitleTypeStatusArtistCreated
{{ p.get('title') or 'Untitled' }} {{ p.get('project_type') or '—' }} {{ p.get('status','active') }} {{ p.get('created_at','')[:10] }}
{% else %}
No projects yet.
{% endif %}
Studio Users
{{ users | length }}
{% if users %} {% for u in users %} {% set plan = u.get('plan') or 'trial' %} {% set uid = u.get('id','') %} {% endfor %}
Email Name Plan Sub Projects Musician Profile Joined
{{ u.get('name') or '—' }} {{ 'Yes' if u.get('subscription_active') else 'No' }} {{ u.get('project_count', 0) }} Profile ↗ {{ u.get('created_at','')[:10] }}
{% else %}
No users yet.
{% endif %}
Studio Projects
{{ projects_list | length }}
{% if projects_list %} {% for p in projects_list %} {% endfor %}
TitleTypeStatusArtistCreated
{{ p.get('title') or 'Untitled' }} {{ p.get('project_type') or '—' }} {{ p.get('status','active') }} {{ p.get('created_at','')[:10] }}
{% else %}
No projects yet.
{% endif %}
Loading…
Loading…
FAL AI Credits
Loading…
Anthropic (Claude)
No balance API — check console ↗
Render Server
Claude Sonnet 4.6: $3.00/1M input · $15.00/1M output · $0.30/1M cache read · $3.75/1M cache write
FAL Flux Schnell: ~$0.003 / image
Supabase: Pro plan — check dashboard ↗
Supabase
{{ 'Connected' if stats.supabase_ok else ('Error: ' + stats.supabase_error) }}
ANTHROPIC_API_KEY
{{ 'Set' if stats.api_key_set else 'Missing' }}
FAL_API_KEY
{{ 'Set' if stats.fal_key_set else 'Missing' }}
STRIPE_SECRET_KEY
{{ 'Set' if stats.stripe_key_set else 'Missing' }}
SUPABASE_URL
{{ 'Set' if stats.supabase_url_set else 'Missing' }}
SUPABASE_SERVICE_KEY
{{ 'Set' if stats.supabase_service_key_set else 'Missing' }}
{% include '_footer.html' %}