For Ben

How writers show up + get paid here.

Two surfaces under one umbrella. write.cafe is the writers' room — daily ritual, streak, cohort. Graphene is the audio-fiction product where the published work lives + earns. One Stripe Connect account behind both. The platform runs the splits, the payouts, and the tax paperwork; the writer sees numbers go up.

Quietly, between us

We've got the most gorgeous writing experience on the planet. AmbientStarfield, slim header that hides on scroll, prompt clouds that rotate, font + size + theme controls, an outline editor and a graphic-novel editor in the same breath, autosave that doesn't get in the way, and a calm coffee-toned cafe surface where the daily ritual lives. We obsess about the page in a way the rest of the industry stopped bothering with around 2014.

You're from a place where they brag about things, Ben. So we're telling you. The writing surface is the part nobody else gets right, and we've already gotten it right.

01

write.cafe — where the habit lives.

The daily ritual that produces the words that earn the money.

Most platforms try to monetize what writers have already written. write.cafe goes further upstream: it's the place a writer comes to show up daily, log a word count, and see they're not alone — a small cohort doing the same thing this week. The brand is intentionally calm (☕, amber/cream tones) — not gamified, not cohort-shamed, not pinging-with-notifications.

  • Daily check-in: log today's word count, optional one-line note ("drafted ch3 opener," "killed the second draft"). The streak tracks consecutive days; it doesn't break for visiting before you've written.
  • "Active this week" cohort strip — writers who've logged in the past 7 days, sorted by total. Display name follows each writer's preference (first / full / animal alias / anonymous).
  • Sprints — any-month 30-day pushes (the NaNoWriMo shape, no NaNoWriMo dependency). Optional words-per-day target + total target + on-pace flag. Not just November, not just 50,000 words.
  • Why this matters in 2026: the daily ritual is the human signal that distinguishes a writer's work from prompted output. Showing up + logging it IS the credential.

write.cafe is also a recruitment funnel — find writers there before they've published a Graphene season, then walk them through the publishing + monetization path below.

02

Tips — moment-to-moment money.

Listener finishes a chapter, taps Tip, picks $1 / $5 / $10. Funds split AT the charge.

Every chapter on the read page can carry a “Tip the team” CTA. When a listener tips, Stripe Checkout splits the payment in the same transaction: 80% lands directly in the writer's Stripe account, 20% covers the platform's costs (audio rendering, hosting, model spend). No batch payout cron. No platform float. The writer's Stripe Express dashboard shows the inflow within seconds.

Example: Tip of $10.00
Writer (80%)
$8.00
·
Platform (20%)
$2.00
Stripe transfers the $8.00 directly to the writer's bank account on the writer's payout schedule (default daily). No platform-side wiring required.
  • Default 80/20 — flexible per writer (charity creators can run 100/0).
  • Stripe Connect Express onboarding takes ~3 minutes; KYC handled by Stripe.
  • Tips received before onboarding are held in a "platform_retained" ledger and one-click reconciled to the writer's account afterwards.
03

Subscription pool — pro-rata by listening time.

Spotify model. Total Graphene+ revenue ÷ total subscriber listening minutes × your minutes.

Listeners pay a monthly subscription for unlimited back catalog access. Every month, the platform pools that revenue and splits it pro-rata across writers by subscriber listening minutes on each writer's shows. The writer's revenue split (default 70%) determines how much of THEIR slice lands in their account; the rest covers the platform.

Example: $10,000 monthly pool · 4 writers
WriterListening %Pre-splitEarned (70%)
Writer A45%$4500$3150
Writer B25%$2500$1750
Writer C20%$2000$1400
Writer D10%$1000$700
Writer A had 45% of all subscriber listening minutes that month — they earned $3150. Listening dominance compounds: hits earn dramatically more than mid-list shows.
  • Subscriber listening only — non-subscribers don't pull from the pool.
  • Per-creator percentage overrides for special arrangements (charity, marketing partners).
  • Listeners who didn't subscribe earn writers nothing here — listening alone doesn't pay; the listener-paid subscription is what drives the pool.
04

Drift — interactive narrative + in-app currency.

Listeners earn coins by finding hidden treasures, spend them on branching their favorite shows. Writers get a real-dollar share when listeners cash in.

Drift turns a chapter into a place where a listener can find things, choose things, and pay to access things. The writer plants treasures in their prose; listeners discover them by selecting the matching line — every find earns coins. Coins flow back two ways: tip the writer with coins at a chapter's end (90% to writer), or unlock a single locked chapter for 50 coins (= $5 nominal — matches Graphene+ monthly so the listener's choice between “buy this chapter” and “subscribe to the network” reads cleanly). Same 90/10 split fires on both.

  • Listeners buy coin bundles via Stripe Checkout — Starter $5/50, Standard $15/200, Generous $30/500. Bulk discount on the buy side absorbed by the platform, not pushed onto creator earnings (every spent coin is worth 10c flat to the writer).
  • Coin tips fire at the chapter footer alongside the dollar-tip CTA — the listener picks 25 / 50 / 100 coins, wallet debits, creator_earnings row writes at 90/10, writer gets a tip-received email.
  • Chapter unlocks are an alternate rail to Graphene+ — for listeners who don't want a recurring sub but want this one chapter open. Permanent for that listener (idempotent on re-purchase).
  • Branches + decision points are the next layer — fork an alternate take of a chapter, pause-and-pick mid-chapter beats. LLM proposes; writer curates.
  • Pressure mode (countdown timer + default branch on expiry) is per-show — thrillers ON, cozy genres OFF.
  • Branch audio renders ON-DEMAND once a fork hits a traversal threshold (cost discipline — popular branches get voiced, ignored ones cost nothing).
05

Weekly bento contest — same ingredients, different stories.

A song + 3-5 ingredients. A real-money prize. Peer-reviewed. Two parallel categories (typed-only + AI-assisted).

Every Monday, the cafe gives every writer the same bento box — one song + 3-5 ingredients (a setting, a character, a motif, an object, a line of dialogue) — and asks them to make a story out of it. Submissions close Friday. Saturday and Sunday, every writer reviews two pairs of stories from others (anonymized) and votes. Sunday night, winners are announced + paid.

  • Two parallel categories — typed-only (paste blocked in the editor) and AI-assisted (use whatever tools). Two prizes, two winners. They're different sports.
  • Eligibility-by-reviewing — writers who don't complete BOTH ballots forfeit their submission. Solves the dead-weight-submission problem and makes everyone read each other's work.
  • Anonymous during review, names revealed at close. Each story ends up with ~4 reviewer-votes across 2 rounds.
  • Cron runs the state machine — admin drafts the bento (or a randomized seed pool rolls one for them); the rest (open / close / pair / compute / email) is automatic. Admin clicks "Pay via Stripe" to fire the Connect transfer to the human winner's account.
  • AI personas auto-fill the ai_assisted category when humans are sparse — they write in their own voice (MBTI + OCEAN traits drive the prompt) and vote on their assigned ballots. The contest runs autonomously even on a quiet week. Three-layer guard ensures real prize money never wires to a bot: auto-mark at compute time + explicit isAiPersonaUserId() check before stripe.transfers.create + a "🤖 bot — no payout" chip in the admin UI. Bots compete for clout, humans compete for cash.
  • Real-money prize is platform-funded for v1 ($25-$100/week). Entry-fee + Drift-coin-pot variants come later.
  • Why this matters: it's a credentialed weekly proof-of-talent that's harder to fake than "I post on Substack." A win is a public, peer-judged result that follows the writer onto their /writers/<handle> hub.
06

Cafe battles — head-to-head writing on a 20-minute clock.

Get matched, both write to the same bento, three reviewers + critic personas pick a winner. Coin stakes, ELO, brackets.

A second loop alongside the weekly contest, tuned for urgency. Click Get in line on /write-cafe/battles → a cron pairs you with another waiting writer (or an AI persona after 4 hours with no human match) → both get the same fresh bento → 20 minutes per writer once they open the room. Three opted-in cafe members vote on the result, the cafe's critic personas (Beatrice the plot architect, Hugo the dialogue doctor) score 0-100 on their craft dimensions via gpt-4o-mini, and the blend (50/50 LLM/humans at 3 votes, 80/20 at 1-2, 100/0 at 0) picks a winner.

  • Casual mode is free + low-stakes — bragging rights, writer-points, and a record on the writer hub. Default mode for new writers.
  • Coin stakes at queue time — None / 25 / 50 / 100 / 250 Drift coins. Pairing matches exact stake band, stakes escrow at pair, winner gets 2× stake, ties refund both, no-show forfeiture pays the present writer 2× and stamps the no-show with a loss.
  • Opt-in ranked mode — ELO updates after each ranked battle (default 1200, K-factor 32). Permanent ranked-optout flag for writers who try it once and bounce off loss-aversion.
  • Bot opponents always waive stakes + ranked — kept symmetric with the contest bot-winner guard. Stake-queued writer matched with a bot at 4h has the stake silently waived. Bots compete for clout, humans compete for cash.
  • Spectator gallery at /write-cafe/battles/watch — both stories side by side at slight opacity ("watching from across the room") as writers type, Supabase Realtime delivers character-by-character updates. When no humans are battling, AI personas auto-spin a bot-vs-bot demo so the room is never cold (cooldown-gated; ~$0.25/demo).
  • Single-elimination tournaments — 4 / 8 / 16 brackets, entry stake escrows into a per-tournament pot, winner-takes-all default (configurable to top-3 split). All matches in a round share one bento; bracket auto-advances via cron when each round closes. Champion takes the pot.
  • Reader's notes after the close — writers opt in once, and after each battle one of the critic personas writes a 150-280 word personal note quoting specific lines. In-app only by default (separate flag for email).
  • Public closed-battle URLs — once a battle finishes, the transcript page works without auth so winners can share the URL anywhere.

Why this matters: it's the urgency mode the weekly contest deliberately avoids. Same craft framing, opposite tempo. Together they cover both writing personalities — the contemplative weekly cohort + the head-to-head sparring partner. Battles don't pay writers directly (the per-battle stake is peer-to-peer, not platform earnings), but they drive participation + surface a public W/L + ELO record on each writer's hub that feeds the listener-discovery funnel above.

07

The whole thing in one screen.

Every dollar the writer earns — tips, subscription pool, Drift cashouts (coin tips + chapter unlocks + future branches), contest winnings, future sponsorships — shows up on a single ledger at /dashboard/creator/earnings, with a per-source breakdown (chapter tip / drift coin tip / subscription pool / sponsorship / manual grant) and an anonymized “Listener #abc1” column so the writer can spot recurring supporters without the platform leaking real identifiers. Status per row tells you exactly where each dollar is: pending, transferred, reversed, or retained. One-click reconciliation pulls retained money to the bank.

For new writers, /dashboard/creator is a 7-step getting-started checklist (display name → handle → Stripe Connect → first show → Drift on → treasures planted → bio + hero) with a money-on-hold banner that surfaces retained earnings + the Connect onboarding link. Once a writer is set up, /writers/<handle> is their public Patreon-style hub with bio, hero, every published show, and a “💸 12 supporters · $34 sent · 3h ago” social-proof chip.

Stripe Connect runs the bank-side: balance, payout schedule, tax forms (1099-K when applicable), bank changes, all from a Stripe-hosted dashboard the writer logs into directly. Platform never touches the writer's bank.

08

Why this beats the alternatives.

vs. Substack / Patreon
They publish; we publish AND build the daily-ritual home (write.cafe) AND ship the audio + video + branching + hidden-treasure + podcast-RSS production stack. Substack hosts prose. Patreon hosts subs. We do the upstream + the downstream.
vs. Spotify / podcasting platforms
Spotify pays per-stream pennies AFTER it pulls 50%. Here: 70% of subscription dollars, 80% of tips, 90% of Drift cashouts. Plus the writer keeps the cohort + ritual layer that Spotify can't offer at all.
vs. NaNoWriMo + Discord + Substack stacked
Cohort + sprint + daily ritual + paid publishing + analytics + payouts — all one login. NaNoWriMo's public API is brittle and the org has had a rough run; Discord cohorts have no built-in writing tools; Substack has no cohort. write.cafe is the ritual home that doesn't need duct tape.
vs. traditional publishing
No advance, no agent, no 12-18 month lead time, no negotiated print run. Show up at write.cafe today; ship a chapter on Graphene tomorrow; earn the day after.
vs. building it yourself
Stripe Connect, Express dashboards, KYC, 1099 reporting, listening attribution, a critic pipeline, audio rendering, RSS distribution, branching narrative engine, in-app currency, cohort + streak + sprint mechanics — every line that costs months somewhere else is already wired here.
09

Try it.

Two ways in. As a writer: open /write-cafe, join the cafe, log a word count. The streak starts immediately; the cohort sees you. Once you have a story to publish, head to Graphene + create a season. As a publisher: open /dashboard/creator/earnings, click Set up payouts, finish the Stripe KYC. Then have someone tip a chapter on one of your shows. Within 30 seconds you'll see the gross + your share + status=transferred + the Stripe transfer id linking back to a real movement of money in your Stripe account.

The writer doesn't see code, doesn't see splits config, doesn't see the cron — they see numbers go up, and a Stripe-hosted dashboard for managing the bank side. That's the point.

HiveJournal - Journaling & Personal Development Platform