partywall
plan · written 2026-10-25, six days before Halloween

Sell the Halloween wall to everyone else's party by Saturday.

Partywall works now: sign-up, wallet, Stripe top-ups, 11 themes, custom prompts, the reveal on the wall. It runs in beta (invite code, Stripe test mode). Four things you do turn it into a real product. Everything else is distribution.

Where it stands

Go live: four steps, about 30 minutes

  1. Decide whose Stripe account takes the money. The test key in use belongs to the Stripe account whose checkout says “Ritual Industries Mixtape.” Either rename that account's public business name to “Ritual Industries” (Settings → Business → Public details) or create a separate account for Partywall (Stripe lets one login hold several). That account runs Stripe Tax, so the worker already sends a tax code and keeps tax inside the price.

  2. Make a dedicated fal account so Partywall's AI spend is separate from yours (next section).

  3. Run the go-live script from the project folder. It asks for the live Stripe key and the new fal key with echo off, sets them as Worker secrets, and removes the invite code so anyone can sign up:

    cd ~/Desktop/Claude\ Projects/ritual-deployments/partywall-v2
    ./go-live.sh
  4. Prove it with a real dollar. Sign up with your own email, top up $1, start a wall, and send one photo. The admin dashboard should show one top-up and one fal job. Then refund the $1 in Stripe if you like.

Optional, any time: (a) Add a Stripe webhook to https://getpartywall.com/api/stripe-webhook for checkout.session.completed and put its signing secret in STRIPE_WEBHOOK_SECRET. Without it, payments are still credited the moment the host's app reloads, because the app asks Stripe directly. (b) Emailed sign-in links: add a Resend key (RESEND_API_KEY) and a sender (MAIL_FROM). Until then, hosts keep the sign-in link they get at sign-up.

Setting up the Partywall fal account

The memo is right: it has to be your account, because guests never touch fal and hosts only buy Partywall credits. A separate fal account keeps the bill and the usage graph apart from your personal work.

  1. Sign out of fal.ai and sign up again with a new address. A Gmail alias works: brianthomasharms+partywall@gmail.com lands in your inbox. Alternatively, create a team named Partywall inside your current fal account; teams get their own billing and keys.
  2. Billing: add a card and buy $50 of credit. Turn on auto top-up with a low threshold so a party never stalls, and set a monthly spending limit as a second fence.
  3. Keys: Dashboard → Keys → create a key named ri-partywall-v2 with API scope. Paste it into ./go-live.sh, or set it on its own:
    printf '%s' "<the new key>" | wrangler secret put FAL_KEY
  4. Monitor: fal's dashboard shows spend by model and day. Partywall's admin page shows the same jobs from our side, with revenue next to them. If the two drift apart, hedged retries are costing more than expected.
  5. The fence that doesn't depend on fal: the worker refuses to start new restyles once AI spend in the last 24 hours passes DAILY_CAP_CENTS ($30 now; raise it in wrangler.toml as volume grows). Photos keep going up as-is and hosts aren't charged.

Unit economics

10¢

price per photo

AI cost × 2.5 (MARKUP_PCT = 150), rounded up

~4.2¢

AI cost per photo

Nano Banana edit $0.0398, Qwen edit $0.03/MP (fal.ai, 2026-10-25), plus ~5% for retries

~5¢

left per photo

after Stripe's 2.9% + 30¢ on a $5–$10 top-up

The $1 top-up problem. Stripe's fixed 30¢ takes 33% of $1 and 18% of $2. A $1 top-up still clears about 2.4¢ a photo, so it isn't a loss, but $5 is where it becomes healthy (8.9% fee). The app keeps all six amounts you asked for and highlights $5. If small top-ups dominate, either add a 25¢ convenience fee under $5 or drop $1.

Per party: a 40-person party sends about 100–150 photos, so $10–15 of credit, of which roughly $5–7.50 is margin. Unused credit stays in the wallet; some of it never gets spent, which is pure margin.

Play with every assumption on the interactive model.

Projections

These are assumptions, not forecasts: one party per host, 120 restyled photos per party at 10¢, 4.2¢ AI cost per photo, and 1.5 Stripe top-ups per host (2.9% + 30¢ each). Revenue here is credit spent; unspent credit would be extra.

Halloween test (this week)HostsPhotosRevenueAI costStripeMargin
Friends and last night's guests101,200$120$50$8$62
One good reel lands607,200$720$302$48$370
A post goes properly viral40048,000$4,800$2,016$319$2,465

The 12-month view follows the party calendar: Halloween and December (office parties, ugly sweaters, Christmas, New Year's Eve) are the peaks, with a February bump (Lunar New Year, Mardi Gras, Super Bowl) and weddings and birthdays underneath all year. With 40 hosts in a normal month, 8% monthly growth and the holiday multipliers, the default model lands at about $15k revenue and $8k margin in year one (134k photos). It is small as a business and big as a test, and the B2B options below are where the money multiplies.

What this test should answer by November 1: how many strangers create a wall, how many top up, how much they buy, and how many photos a party actually sends. All four are on the admin page.

The Halloween push (six days)

  1. Film the reveal. Last night's wall is the ad: 15 seconds of a projected face turning into a vampire on the side of a house. Post it as a Reel and a TikTok with “link in bio, works for your party Saturday.” One clip per theme after that.
  2. Last night's guests. Every one of them watched it work. Text them the link with a “use it Saturday” nudge. Every guest page now says “made with partywall — start your own wall.”
  3. Where Halloween hosts gather: r/halloween, r/HalloweenParty, r/projectionmapping, r/DIY, Nextdoor, and AtmosFX projection-decoration groups (people who already own projectors and point them at their houses).
  4. Comp the first ten. Use the admin “grant” to put $5 in the wallets of the first ten strangers who sign up, in exchange for a clip of their wall.
  5. Turn the invite code off as soon as Stripe is live (the go-live script does it). Until then the code works as an exclusive “beta invite,” which also makes a good post.
  6. Next week: Día de los Muertos (Nov 1–2) and Diwali (Nov 8) are already built. Then switch every post to December.

Security, briefly

Other opportunities

B2B · biggest lever

Office holiday parties

64% of companies throw one. Snapbar charges about $2,495 for an AI booth for 150 guests. A $299 “company wall” with the logo in the theme, an invoice and a spend cap is an easy yes for an HR lead, and December is six weeks out.

B2B

Bars, breweries, venues

A monthly subscription for a permanent wall: trivia nights, Halloween crawls, Pride, Super Bowl. The venue pays and the theme changes with the calendar.

upsell

Guests chip in

When the host's wallet runs low, the guest page offers “add $2 to keep the magic going.” The party funds itself, and you never have to ask the host for more.

upsell

Premium looks and video

A 50¢ tier using a 5-second image-to-video clip of the transformation (Kling, about $0.35). The wall plays the clip as the reveal.

after the party

Prints and photo books

The keepsake page sells a printed before/after book through a print API. It is the highest-margin product on any event app.

platform

Theme marketplace and sponsored themes

Creators publish themes (prompts, fonts, reveal) for a revenue share. Studios pay for a branded horror theme the week a film opens.

channel

Photo-booth operators

A white-label wall for the people who already rent booths. FotoMaster's operators pay 4–16¢ per AI credit today, so the price point is proven.

evergreen

Weddings and bachelorettes

About 2M US weddings a year, 117 guests each. The custom-prompt inside joke is made for bachelorettes.

Name: “Partywall” is clear of live trademarks but crowded (it's a common building term), and partywall.com/.app/.co are taken. partywall.io, getpartywall.com and partywall.party look free. Details are on the research page.