Secret Fantasy is a library of interactive romances, each told as a live phone conversation: the message arrives, you answer it, and who trusts you, who wants you and how it ends all move. Every episode of every story is free. Gems only buy the wait.

At a glance

  • Live on: App Store · Google Play. No account; saves live on the device.
  • On the shelf: three complete romances (mafia, werewolf, fae), twelve episodes each, three routes per story, one shared gem wallet.
  • Gem packs (consumables, via RevenueCat): 80 for $1.99 · 250 for $4.99 · 600 for $9.99 · 1,400 for $19.99 · 4,000 for $49.99. The first pack you ever buy pays double.
  • RevenueCat powers: the five packs — fetched by product id, sold at the store's localized price — and the Gem Shop.
  • RevenueCat Ads powers: revenue tracking for the rewarded video (Purchases.adTracker), so an ad view and a gem pack land in one ledger per reader.
  • OneSignal powers: broadcast push for new content and win-back, segmented by the stories a reader has finished. The daily unlock reminder stays local.

The interface is the fiction

The reader is a chat thread. No narrator tells you a text arrived at 2am; the typing indicator pulses, the bubble lands, and the reply is yours to choose. Your own messages render in the story's accent colour, the cast have painted portraits, and each romance carries its own palette over the app's shared dark base, so Omerta, Moonbound and Thornwilde feel like three different books on one shelf. A heat rating on every cover, one to five flames, tells you the temperature before you open it.

Three romances, twelve episodes each

  • Omerta — Mafia romance. One year as personal fixer to New York's youngest don clears your family's debt. Falling for him breaks every rule. So does telling him what you really are.
  • Moonbound — Werewolf romance. He rejected you in front of the whole pack at nineteen. Six years later your grandmother's death calls you home, and the bond that was supposed to be broken has other ideas.
  • Thornwilde — Fae romance. Your brother walked into a night market at nine years old and never walked out. Seven years later a number with no area code says he is alive, and offers to take you to him.

New episodes ship as data from a CDN and are validated on the device before they run, so a new season lands without waiting on a store review. Your gems carry into every one of them.

Every choice is load-bearing

These are not cosmetic dialogue options. Each story tracks affinity per love interest and a set of flags that survives from episode to episode, so a decision in episode two changes who confides in you in episode ten and which endings are still reachable. Three romance routes per story are tracked independently; a second read is a different book. An authoring pipeline validates every episode graph before it ships and again when it downloads, so a choice can never point at a scene that does not exist.

Every episode is free. Gems only buy the wait.

No episode is ever locked behind a purchase. Episode one is open the moment you install; finish it, and the next unlocks the following day. At that gate you get two exits, side by side: watch one rewarded ad, or spend 20 gems. Gems also open optional bonus scenes (10–20 gems) — depth, never plot. A reader who never spends reaches exactly the same ending as one who does.

That is a deliberate rejection of how this genre monetizes. The dominant model in interactive fiction is the per-choice paywall: the good answer costs three gems, the interesting scene costs twelve, and readers learn that the story they are being told is the cheap version of one they cannot afford. It converts, and it makes people resent the app. We sell impatience instead.

The economy is built to make that legible. You start with 25 gems, earn 5 for every episode you finish and 10 for every ad you choose to watch. The Gem Shop opens with a card that says plainly what gems do, and the free ad row sits above the paid packs, not below them. Ads and purchases pay into the same wallet, so attention is a real, slower currency alongside cash, and RevenueCat's ad tracking puts both in one ledger. One wallet spans every story on the shelf.

No account, no feed, no algorithm

No sign-up, no login, no profile. There is no infinite scroll, no recommendation engine and nothing optimising for the time you spend — a shelf of stories and whichever one you picked. Notifications are asked for only after you have finished an episode and have a reason to want one.

For judges: seeing premium

Gems are consumables, so there is no free trial and nothing to unlock: every episode is free, and a rewarded ad pays 10 gems if you want to try a skip without buying. The Gem Shop is one tap from the launch screen — the 💎 badge in the header, or the Gem Shop button under the shelf. Gems do two things: open the next episode today (20) or unlock a bonus scene (10–20). To see the gate, finish episode one of any story and open its episode list. You can also read an entire story end to end without spending anything, which is the point.

Pick a story. Answer honestly. Or don't.

Built With

  • revenuecat
Share this project:

Updates

Submission history