Synopsis

Privatus — Dashboard

Live
Active Campaigns
Submissions Received
Restaurants in Network
Experiences Sold

Campaign Status

At-a-glance view of every live campaign
— campaigns

Recent Activity

    Top Performing Campaigns

    Company Financials

    Lifetime aggregate across every campaign.

    Restaurant Finder

    High-End Venues for Superfan Dinners

    — venues
    Campaigns & Forms

    Build Submission Forms for Your Artists

    Sort
    Fan Submissions

    Review & Pick Winners

    New Submissions

    0
    FanCityCampaignFan ScoreHighlights

    Winners

    0

    Declined

    0
    Winners & Messaging

    Chat with Your Selected Superfans

    — winners
    Select a winner
    Pick a winner from the left to start chatting.
    Operations · Host Directory

    Host Directory

    Sort by
    Name City Phone Email
    Financials · Campaign P&L

    Campaign Profit & Loss

    Library · Fan Hubs

    Fan Hubs

    Every Fan Hub — winners and their plus-ones. A hub flips to Closed automatically 72 hours after the dinner. Use this page to jump into a fan's hub or pull access if something needs to be addressed.

    Library · Permanent Archive

    Fan Database

    — fans archived
    Every fan who submitted to an ended or cancelled campaign is saved here permanently. Names, contacts, and engagement signals are preserved so you can build relationships over time, cross-reference returning superfans, and keep the history of the business.
    FanContactCityFan Score Original CampaignOutcomeArchived
    Fan-Facing Preview

    This Is What Superfans See

    Privatus · Superfan Experience

    How it Works

    The Privatus Playbook

    Read this end-to-end and you should be able to run Privatus without calling anyone. It's written to be the one document a new operator opens on day one.

    The Concept

    Touring artists have dark nights — off-days between shows when they're in a city with nothing scheduled. Privatus turns that dead space into an 8–20 person private dinner with their most passionate fans. The fans pay for the seat. The artist gets an honorarium and a warm room full of people who know every lyric. The restaurant gets an unforgettable night and a loyal alumnus.

    It isn't a meet-and-greet, and it isn't a concert. It's a dinner — with all of the hospitality conventions of a fine-dining evening — where the artist sits at the table instead of on a stage. The Fan Score makes sure the seats go to the right people; the local host keeps the room vibrant; the menu and setting make it feel like the most generous night of the fan's year.

    The product is discretion, curation, and intimacy, priced and produced like a fine-dining experience. Every feature in this dashboard exists to serve those three things.

    A Week in the Life

    Privatus runs on a handful of repeated motions, not on heroic days. Once the system is set up, a week looks roughly like this.

    Each morning, open the Synopsis page. The Campaign Status Board shows every live campaign with seats sold, submissions, approvals, unread chats, and days to dinner. Handle the unreads first — fans waiting on a reply is the only thing that can't wait. Then scan for any campaign that's under-booked relative to its dinner date; that's where the day's energy goes.

    Across the week, you're cycling through Submissions to promote new winners, Winners & Chat to send the standard templates (Details, Restaurant, Host, Dietary, Reminder), and Campaigns & Forms whenever you open a new dinner. Pitching restaurants and sourcing hosts is the creative work that fills the gaps between those routines.

    After a dinner, finalize the P&L the next morning while the numbers are fresh, send each winner a thank-you through the archived chat within 48 hours, and move on. The Fan Hub closes itself 72 hours after the event — you don't have to remember to do anything.

    If you're ever lost, the Synopsis is always home base. It's designed to answer "what needs me right now?" in under ten seconds.

    1

    Route the dark night

    Start with an artist's confirmed tour schedule. Flag every city where there's a night between shows — a day off in a place where the artist is physically present. Use the Restaurant Finder to see which of those cities have venues matching the artist's vibe and price tier. Cross-check the Fan Database for historical superfan density in that city (if you've run dinners before, you already know where your best audience lives).

    Dashboard tools: Restaurant Finder (filter by city + capacity + price) · Fan Database (historical signups by city) · Campaigns page (existing bookings to avoid collisions).

    2

    Pitch the venue, lock the room

    Open the Restaurant Finder, click into a candidate venue, and tap Pitch via Email. The composer pre-fills a tailored message — artist, date, seats, and a paragraph on why this specific room is the right fit (their private dining capacity, vibe, cuisine). Send it to the events contact.

    When the venue says yes, confirm F&B minimum, any private-room fees, dietary flexibility, and house rules. Save the final venue name + address into the campaign. If a pitch goes nowhere — no reply, venue declines, wrong fit — hit ✕ Remove on the restaurant card with a reason; it doesn't vanish, it just moves to the Removed list so you don't re-pitch it next tour.

    3

    Source a local host

    Hosts are not employees. They're sourced per city — a music writer, hospitality veteran, producer, or cultural person who can emcee the evening and keep conversation flowing between strangers. Good hosts are the difference between a quiet dinner and a legendary one.

    Enter their first name, last name, email, phone, and a one-line bio into the Host Assignment section of the campaign editor. That contact flows through every winner chat: when you send Send Details, guests see who's meeting them at the door and how to reach them day-of if something goes sideways.

    4

    Open the campaign

    Go to Campaigns & Forms, create the campaign, and set the basics: artist, tour, city, date, seats (8–20), price. Write the hero copy — one sentence a fan will see when they land on the form. Then customize the submission questions with the Form Builder.

    The default form already has three sections — About You, Your Fandom, The Dinner. Start there and add artist-specific questions from the 76-field library: "Which album do you play most?" · "Have you ever made a cover?" · "What's your favorite lyric?" These are the questions that separate superfans from casual fans; they feed the Fan Score.

    Copy the share link and hand it to the artist's team. They drop it on socials, in newsletters, on Discord servers, in fan-club emails. Applications start rolling in within hours.

    5

    Curate the table

    Every submission lands in Fan Submissions with a Fan Score (0–100) — a weighted read on form completeness, years as a fan, shows attended, fan-club membership, and the detail and passion of their voluntary write-ins. Sort by score, filter by the fan's home city, or search for specific story keywords.

    The score is a starting point, not a verdict. Click View on any submission to read their full story, the song that matters most to them, and what they'd want to say at the table. You're curating the chemistry of the room — a 95-score fan who is all-facts may be less valuable than an 82-score fan with a story that breaks your heart.

    Click Approve to promote a fan; they move to Winners. Click Decline to pass; they move to Declined but stay in the record — you can restore any declined submission later if someone drops out or the seats come back. When you approve, you choose whether to grant that winner a Plus One. Granting a +1 lets that fan bring one guest; Stripe will charge them 2× the seat price automatically. Use plus-ones for the most invested applicants or to lock in strong couples; leave them off for solo seats.

    6

    Send the welcome, collect payment, open the Fan Hub

    When you approve a winner, Privatus automatically sends them a welcome email (routed through the info@privatus.art Gmail account) with a link to their personal Fan Hub. The winner's first visit to that link lands them on the paywall — a Stripe Checkout page that charges their seat price (or double, if you granted the +1). Once Stripe confirms payment via webhook, the Fan Hub unlocks and the paywall disappears. You'll see their status flip to Paid in the dashboard within seconds.

    Until the fan pays, they see only the paywall. The standard payment window is 7 days; after that the chip turns red and you can follow up manually. VIPs — fans you're comping because they're the artist's friend, a journalist, or a family guest — can be marked paid directly from the approval modal; no Stripe charge runs.

    Once they're inside the Fan Hub, this is their home base until the night of the dinner. It shows them the dinner date, dress code, house rules, and — starting 72 hours before dinner — the restaurant name, address, vibe, and map link. Before that 72-hour mark, the venue stays sealed behind a "mystery" card with a live countdown. That's deliberate: it keeps the night a surprise and protects against public leaks. If you need to reveal the restaurant earlier (a fan traveling from out of town needs to book a flight, for example), the Share Restaurant template in Winners & Chat unlocks it immediately for that winner only.

    The Fan Hub also hosts the direct chat with you. Fans see your messages in the same pane where they see their dinner details; they reply and you see it in Winners & Chat as an unread. If you granted a plus-one, the winner sees a card prompting them to enter their guest's name, email, phone, and dietary notes; once they confirm, the dashboard generates a guest-specific Fan Hub link for them to share.

    7

    Host the night in a window

    Every winner has their own thread in Winners & Chat. You never leave the dashboard. The quick-send buttons do most of the work:

    • Send Details — auto-fills date, venue, full address, Google Maps link, restaurant website, arrival window, dinner time, dress code, host name + phone, and the house rules.
    • Share Restaurant — sends the restaurant's name, neighborhood, vibe paragraph, and why it's a fit, straight from the Restaurant Finder record. Also unlocks the sealed venue card in the Fan Hub for that winner.
    • Share Host — introduces the local host by name and gives the guest a direct line for day-of logistics.
    • Ask Dietary — confirms any allergies or restrictions so the kitchen can adjust.
    • Send Reminder — a 48-hour nudge with the critical logistics re-stated.

    Night-of: host arrives 30 min early. Guests arrive in the arrival window. Artist joins after course 2 (per our standard rules). No photography of the artist unless they initiate. One group photo at the end. The host moderates the conversation; you can be in the room or not.

    8

    Close out the campaign

    Next morning, head to Financials (P&L). Pick the campaign. Enter actual seats sold × price, the venue's F&B minimum, host fee, any artist honorarium, gifts, and photography. Three lines calculate themselves: Company take (Privatus) — 20% of gross, Restaurant service & gratuity — 20% of F&B, and Payment processing — 3% of gross. Gross / Expenses / Net / Margin update live as you type.

    Click ✓ Finalize & Close Campaign. This locks the P&L, marks the campaign ended, archives every fan submission permanently to the Fan Database, and moves winner chats to the Archived folder. The database record is permanent — those fans are yours forever, searchable by city, outcome, or score, whether or not the campaign still exists. That's the compounding asset of the business.

    Send a thank-you message from the archived chat to each winner within 48 hours. The night isn't over until they feel seen. Exactly 72 hours after the dinner date, every Fan Hub for that campaign auto-closes — if a fan reopens the link after that, they see a warm "thank you for coming" page instead of the live chat. You don't have to do anything; the system handles it.

    The Cast

    You
    Curator, deal-closer, P&L owner. You open rooms, write pitches, pick fans, and run the dashboard.
    The Artist + Team
    Says yes to the night, shares the link, accepts the rules. Shows up after course 2, signs off on any honorarium terms.
    The Local Host
    Non-employee contractor, one per dinner. Runs the room, greets guests, handles kitchen chatter, orchestrates seating and toasts.
    The Restaurant
    Venue, menu, service, kitchen. Books the private room, accommodates dietary requests, hits the F&B minimum.
    The Superfans
    8–20 per dinner. Self-selected through the form, then hand-picked. They're the whole reason the evening exists.

    The Economics

    Every dinner is its own small business. The P&L is structured so three lines calculate automatically from the gross and the F&B minimum — everything else is event-specific and entered by hand.

    Gross Revenue
    $3,000–$10,000
    8–20 seats × $395–$525
    Company Take (Privatus)
    20% of gross
    Locked line, auto-calculated — the operator's cut off the top
    Variable Costs
    ~55–70% of gross
    F&B, service & tip, host, honorarium, gifts, processing
    Target Net Margin
    10–25%
    After company take + all costs — the room-level surplus
    Auto-calculated lines
    • Company take (Privatus)20% of gross. Privatus's standing cut off the top. Percentage is editable; line can't be deleted.
    • Restaurant service & gratuity20% of F&B minimum. Update the F&B and this re-calculates in place.
    • Payment processing3% of gross. Stripe / card-on-file fees.
    Each computed line shows its formula inline (e.g. 20% × $2,500.00 = $500.00) and flows through to the CSV export.

    The long-term compounding asset isn't the margin on any one night — it's the Fan Database. Every dinner grows a catalogue of verified superfans. Over time, future campaigns cross-reference this database to find returning names, reward repeat attendance, and build pre-vetted lists.

    What Makes a Great Night

    • The artist feels served, not worked. They're paid a real honorarium, fed real food, not photographed to death, and given room to be a person off-stage.
    • Fans feel chosen. The value prop is that they earned the seat. The Fan Score, the curation, the personal intro message — that's why the experience commands its price.
    • The room is small enough for intimacy. Never more than 20. Twelve to fourteen is the sweet spot — everyone can hear everyone.
    • The host carries the room, not you. You handle logistics and the P&L. The host handles conversation, pacing, and making sure the quiet person gets a moment to speak.
    • Discretion is the whole product. No photography of the artist unless they initiate. No social posts about the night until 24 hours after. Word-of-mouth sells the next dinner; spoilers kill it.
    • The restaurant leaves happy. They hit their F&B minimum, they get a world-class guest list for one night, and you leave a glowing thank-you. They'll remember the next time you call.

    What Privatus Does On Its Own

    A handful of things happen automatically, without you clicking anything. Know them so nothing surprises you — and so you don't duplicate work the system is already doing.

    Welcome email on approval. The moment you approve a winner, a personalized welcome email goes out from info@privatus.art via Gmail. It includes the winner's first name, the artist, the city, the dinner date, whether they have a +1, and a link to their Fan Hub. You don't need to compose anything.

    Payment confirmation. When a fan pays via Stripe, a webhook marks them as paid in the database within seconds. The dashboard chip flips from Unpaid to Paid on its own, and a system message posts in their chat confirming the charge. You don't need to refresh.

    Restaurant reveal countdown. The venue details stay sealed in the Fan Hub with a live countdown until exactly 72 hours before dinner. At that mark, the mystery card swaps to the real restaurant card — name, address, vibe, map — automatically. If you send the Share Restaurant template earlier, that specific winner sees it unlocked right away.

    Fan Hub closure. Exactly 72 hours after the dinner date, every Fan Hub for that campaign transitions to a warm "thank you for coming" screen. Fans who bookmarked the link and open it weeks later see that closure page, not a live chat.

    24-hour inactivity sign-out. If your staff dashboard sits idle for 24 hours, Privatus signs you out and asks you to re-authenticate on the next visit. A quiet security net — not a productivity timer.

    Cloud sync. Every edit you make (a new campaign, an approval, a chat message, a P&L line) writes to Supabase in real time. There's no Save button. The green dot in the sidebar tells you the cloud is caught up; a yellow or red dot means retry.

    Plus-Ones — How They Work

    A plus-one lets an approved winner bring one guest. It's a deliberate choice, not the default — roughly 30–50% of winners is a healthy ratio on most nights, but the right number is whatever makes the room feel alive without losing intimacy.

    Granting. When you approve a winner, the promotion modal has a Plus One toggle. Flip it on for fans you want to give the option; leave it off for solo seats. You can change your mind later from the winner's chat header.

    Charging. Stripe charges the winner 2× the seat price if the +1 is granted before they pay. That's enforced at the Checkout redirect — the fan can't skip the extra charge once the toggle is on.

    Inviting the guest. After the winner pays, their Fan Hub shows a "Your Plus One" card where they enter their guest's name, email, phone, and dietary notes. When they confirm, Privatus generates a guest-specific Fan Hub link with reduced permissions — the guest can read all the dinner info but can't send messages or modify the invite. The winner shares that link by email or copy-to-clipboard.

    Seat math. Every dashboard seat count — on campaign cards, the Campaign Status Board, the P&L — includes confirmed plus-ones. A campaign with 12 seats and 8 paid winners, 4 of whom have confirmed +1s, shows 12 / 12 committed, not 8 / 12.

    VIP comp seats. If you mark a winner as VIP (artist's manager, a journalist, a family guest), the +1 rule still applies but no Stripe charge runs. The P&L automatically injects a comp expense equal to the comped seat so the true economics of the night stay visible.

    When Things Go Wrong

    Most weeks are uneventful. When something goes sideways, here's the playbook for the situations that have actually happened.

    A fan paid but still shows "Unpaid" in the dashboard. Stripe webhook probably didn't fire or hit an error. Check Stripe Dashboard → Developers → Webhooks for a red event on the endpoint. Most of the time this is a transient failure; click "Resend" on the failed event and the dashboard will catch up within seconds. If it keeps happening, the webhook signing secret is probably mismatched between Stripe and the Supabase Edge Function's STRIPE_WEBHOOK_SECRET environment variable.

    A winner wants to drop out. Decline them from their chat header, refund them manually in Stripe, and approve a runner-up from Submissions (use the search box to find a high-score fan you declined earlier; they can be restored). Welcome email, paywall, and Fan Hub all re-fire for the new approval.

    A fan never showed up. Nothing automatic runs. On the P&L, count the paid seat in revenue as normal (you don't refund no-shows). In the archived chat, send a short "sorry we missed you" message 24 hours after — sometimes real emergencies were involved and a thoughtful follow-up keeps the relationship healthy.

    The artist drops out a few days before dinner. You'll need to decide: postpone, cancel and refund, or substitute an adjacent artist from the same camp. If canceling, go to Campaigns & Forms, hit Cancel Campaign on the card, pick a reason from the dropdown (this logs to the activity feed), and it archives all the submissions just like a normal close-out. Refund every paid winner in Stripe, then message each one from their now-archived chat explaining what happened. Don't wait — fans would rather hear bad news directly than find out by showing up.

    The venue pulls out. Don't cancel the campaign — you just swap venues. Re-open the campaign card, update the venue fields, and send every winner a chat message explaining the change. If the restaurant reveal has already unlocked (72h before dinner), be explicit in the chat that the address has changed. If it hasn't unlocked yet, the new address simply replaces the old one in the sealed card.

    A fan misbehaves — payment reversed, code of conduct, inappropriate chat. Go to Library → Fan Hubs, find them (search works by name, email, artist, or city), click Revoke Access, and write a brief reason. This blocks their Fan Hub immediately and shows them a withdrawal screen the next time they open the link. If you need to reverse it later, the same button becomes Restore Access.

    A fan asks why their hub went dark. If the dinner was more than 72 hours ago, that's the automatic closure doing its job. Point them to the info@privatus.art email the thank-you screen gives them — you can always reply there personally. There's no way to reopen the hub for a past campaign (nor should there be — it's a privacy feature, not a bug).

    The green cloud dot in the sidebar turns yellow or red. Something's wrong with cloud sync. Check your internet; if that's fine, reload the page. If it persists, the Supabase project may be paused or down — check status.supabase.com. Your local edits are safe during an outage; they'll push once the connection returns.

    Admin & Launch Prep

    Tools in this section only appear for users with admin role. They're one-way levers — think twice before pulling.

    Clear cloud data (launch prep). Wipes every demo or in-progress record — campaigns, submissions, winners, chats, hosts, fan database, revocations — from Supabase. Keeps restaurants (the curated seed list) and user accounts (your logins). Use this once, right before you go live for real. The confirm prompt requires you to type YES in caps before anything is deleted.

    Reset local demo data. Only clears your browser's localStorage copy and reloads. Cloud data is untouched. Handy if you want to re-seed a demo state to screen-share without affecting real users.

    Seed cloud from local data. Pushes whatever state your browser is holding up to Supabase. Almost never needed; safe to ignore unless you're explicitly migrating.

    Staff accounts. Logins are managed in Supabase Dashboard → Authentication → Users. Each staff user needs a row in the profiles table with role set to admin, editor, or readonly. Only admin sees this block; only admin can wipe the cloud.

    Stripe environment. Before the first real dinner, confirm Stripe is in live mode (top-left toggle in the Stripe dashboard), the webhook endpoint points at your Supabase Edge Function, and the STRIPE_SECRET_KEY on the Edge Function uses an sk_live_… key, not sk_test_…. Run one real $1 test campaign end-to-end before launch day.

    Activity log. Every meaningful action — approve, decline, revoke, restore, finalize P&L, cancel campaign, create host — is written to the Activity page under Library. It's append-only and can't be edited. Use it as a forensic record if something gets disputed.

    Quick Reference — Where Everything Lives

    Synopsis
    KPIs, Campaign Status Board, recent activity. Home base.
    Restaurant Finder
    Curated venue list, pitch via email, remove venues that won't work
    Campaigns & Forms
    Create / edit dinners. Cancel, finalize, copy share link, open P&L per card
    Fan Submissions
    Winners / New / Declined · Fan Score · approve, decline, restore
    Winners & Chat
    Active + Archived threads, quick-send templates, revoke / restore access
    Host Directory
    Your roster of local hosts, sortable by city, add / edit / remove
    Financials (P&L)
    Per-campaign live P&L · auto-calculated lines · finalize to close
    Fan Hubs
    Every winner's hub, filter by Open / Closed / Revoked, search, jump in or revoke
    Fan Database
    Permanent archive of every fan who ever applied. Export CSV.
    Preview Fan Form
    See what fans see before you share the link
    How It Works
    This page. Keep it updated as the product evolves.
    Activity
    Append-only log of every meaningful action, forensic record

    Glossary — Terms Used Throughout

    Campaign
    One dinner. One artist, one city, one date, one venue.
    Submission
    A fan's application to a campaign. Unapproved until you promote it.
    Winner
    An approved submission. Gets a Fan Hub, a welcome email, and a Stripe paywall.
    Fan Score (0–100)
    Algorithmic read on fan completeness, depth, and loyalty. A starting point, not a verdict.
    Fan Hub
    The fan-facing page at #fan=…. Paywall, dinner details, chat, +1 card, 72h reveal, 72h post-dinner closure.
    Plus One (+1)
    A granted companion seat for a specific winner. 2× Stripe charge; guest gets their own read-only hub.
    VIP
    A comp seat (artist's camp, press, family). No Stripe charge; P&L auto-injects a comp expense.
    Host
    The non-employee who runs the room that night. Sourced per city, paid per dinner.
    Dark Night
    An artist's off-day between tour stops in a city where they're already physically present.
    Reveal
    When the restaurant identity unlocks for a winner — automatically 72h before dinner, or manually via Share Restaurant.
    Closure
    Automatic Fan Hub shutdown 72h after the dinner. Shows a warm thank-you screen on reopen.
    Revoke
    Manually blocking a fan from their Fan Hub. Used for refunds, code-of-conduct, or withdrawn invitations.

    If You're Truly Stuck

    If something isn't in this document and isn't obvious from the interface, the order to try is:

    1. Check the Activity log — if an action was logged, the system did what you asked, even if the UI looks stale. Reload the page.

    2. Check Stripe Dashboard → Developers → Logs for any payment or webhook weirdness.

    3. Check Supabase Dashboard → Logs — Edge Function logs will show any webhook failure; the Postgres logs will show anything that failed on write.

    4. If a fan has emailed info@privatus.art with a problem, reply from that same mailbox. That's the Privatus-facing address; it's where the thank-you closure screen points them, and the address all outbound emails are sent from.

    Activity

    Team Activity

    Append-only history of every meaningful action on Privatus. Rows are written by a SECURITY DEFINER RPC — nobody can edit or forge them. Visible to all roles.

    Feed
    Updates live via realtime
    Privatus

    Your seat at the table

    Loading...
    Chat with Privatus Live — typically replies within a few hours