Hey everyone, Vitalys here, the solo dev behind Chastikey.
A lot shipped over the last few days. Some of it you'll like, and some of it takes something away from you. I'd rather put it all in one place, with the reasoning, than have you piece it together from what changed on your screen.
Every decision below comes from one rule:
Give you as much power as I possibly can, while keeping an app that still exists in five months.
Those two pull against each other. A limit hurts you, and no limit sinks the app. Pricing everything at cost would feel great for a month and then the app would be gone. So here's where I landed on each change, and why.
1. You can always stop a lock with your safeword, for free
This one comes first because it matters more than anything else in this post.
Some of you used your safeword recently and your keyholder refused, or even added time. That's not a "roleplay quirk". It shouldn't be possible at all, and I'm sorry it happened.
On any open lock (keyholder, sudden death, permanent, cards, Locktober), you now get a Safeword — safety stop button:
- the lock ends immediately
- it's free, with no penalty
- pending check-ins are cancelled, and your keyholder is told it happened
- on a sudden-death lock with a lockbox, the secret stays sealed
It's live on chastikey.eu and on Android. It's not in the iOS app yet. Until it is, the web page works from your iPhone's browser with the same account.
In a real game, power over the lock belongs to her. Power over stopping belongs to you, always.
2. Adaptive mode: let the app pick the brain for each message
In the brain picker, next to Spark, Blaze and Inferno, there's Adaptive. It isn't a fourth model. For each message you send, it chooses how deep to go:
- short replies, "ok", "yes, Miss", or anything that says stop / pain / urgent → the fast brain, so safety answers come back quickly
- questions ("why", "explain", "help me choose"), emotional messages ("I'm scared", "I feel lost") or immersive ones ("continue the scene", "tell me a story") → a deeper brain
- telling her she contradicted herself, or asking "what does that even mean?" → always the deepest one you have. Those are exactly the turns where the fast brain used to double down instead of admitting the mistake.
- asking for detail or for brevity always wins
It only reads the message you just sent (no history, no memory), and your plan still caps how deep it can go.
Why it matters for this post: Adaptive spends Inferno only where Inferno makes a difference. On Premium, your 800 Inferno messages go a lot further. It's optional. If you want a fixed brain, pick one and nothing routes.
3. Inferno goes back up to 800 a month (60 a day, 250 a week)
Inferno runs on a different, much more expensive engine than Spark and Blaze. Long conversations are where it costs the most: every reply re-reads your whole history, and that engine gets far less of a discount for doing it.
So on Premium, Inferno has three ceilings: 60 a day, 250 a week, 800 a month. Past any of them, the conversation carries on with Blaze until that window resets. You're never blocked, never shown an error, never asked to pay to keep talking. Your 5,000-message Premium pool, Plus's 1,000 and Free's 50 are unchanged.
I'll be upfront about the back-and-forth: I started at 800 (the same numbers as my fair-use post), tightened it to 300 to protect the budget, saw that was far too tight (more than half of real Inferno usage was landing on Blaze), went to 600 the same evening, and today it's back to 800.
That last step isn't a gamble. Nobody is paying for it; it's paid for by money I stopped wasting elsewhere. That's the next section.
And the promise still stands: I look at the real cost every month. If the numbers leave room, Inferno goes up again. The ceiling exists to keep the app alive, not to squeeze you, and every saving I find goes to you first.
3b. Where the room for 800 came from
Three things cost me a lot without giving you anything proportionate. I fixed all three this week, and that money now funds Inferno.
Check-ins cost about a fifth of what they did. The messages she sends on her own were running on the most expensive engine, re-reading up to your entire conversation history each time, and a bug made failed check-ins retry every minute. They now run on the fast engine with a sensible reading limit, and a failed one waits 30 minutes before trying again. Net: about a fifth of the previous cost. They also work again: they'd been silently broken for two days (details in section 6).
Voice stopped losing money (section 5). Every credit used to be sold at or below cost. Now it covers itself, so text subscriptions no longer quietly pay for audio.
Compaction: she re-reads less, and remembers more. I want to spend a moment on this one, because "compaction" sounds like "we cut your history to save money", and it's the opposite.
Before, a long conversation worked like this: the app sent the model your last few hundred messages word for word, on every reply. That's expensive, and anything older than that window simply fell off the edge. Nothing wrote it down. Message #1 of a long relationship was gone the moment it slid out.
Now, once a thread gets long, the older part is written up into chapters: short, dense summaries of what actually happened between you two (the rules she set, what you confessed, the promise she made, the punishment still pending). A new chapter is added as the conversation moves on, and old chapters are never rewritten while they're recent. Only when there are many of them are the oldest folded into one "story so far". The recent part of the conversation (roughly your last 30 to 40 messages) is still sent word for word, exactly as you wrote it.
Replayed on 456 real long threads, compared to the previous version:
- about 20 % less text re-read per reply (34 % less on the longest threads), which is the saving
- about 3× more remembered: the memory she carries went from about 650 tokens to about 2,100
- if a reply ever has to be trimmed to fit, the memory is the last thing dropped, not the first
The first version of compaction had a flaw I only caught by measuring it: it rewrote a single summary from itself every time, so it stayed the same size whatever it covered, and the oldest facts were the ones squeezed out. That's what chapters fix.
So compaction doesn't mean "she's given less". She reads fewer words, and remembers further back, and what gets saved on each reply is part of what pays for your extra 200 Inferno messages.
4. Message packs: what the button says is what you get
Packs now credit 60 / 200 / 600 messages. On Premium, those are Inferno messages that reopen the flagship once you've hit its limit. The web shop was still showing "+100 / +400 / +1200", the digits from the store product IDs. That's fixed.
5. Voice: no plan includes it any more, and credits are priced on what they really cost
This is the unpopular one.
I measured what voice actually costs in production: one audio credit is about 600 spoken characters, roughly 35 seconds of listening. With the old grid, every credit I sold was at or below cost once VAT and the store's cut came off. Voice was the one feature losing money with every use, and it got worse the more you loved it.
So:
- no plan includes voice any more (it was 20 / 50 / 150 a month)
- the voice passes and the free monthly voice day are gone
- voice is sold as audio credits that never expire: – App Store: 35 / 85 / 200 credits for 3.99 / 8.99 / 19.99 – web: 60 / 130 / 280 credits for 4.99 / 9.99 / 19.99 (≈ 35 min / 1 h 15 / 2 h 45)
- live voice in the chat is now paid by length. It used to cost one credit per reply, however long. Text is never cut; only the voice stops when your balance runs out.
Credits you already bought didn't move. A credit you have is still a credit.
Yes, for the same price you get about a third of the credits you used to get on iOS. The alternative was to keep selling at a loss until I had to switch voice off entirely. Given the choice, I kept it alive and priced it honestly. And because voice no longer drains the budget, that's part of what let Inferno go back to 800.
(One caveat: older iOS versions still show the old numbers on the top-up screen. The new amounts are what gets credited. Update the app if you see 100 / 250 / 600.)
6. She stops saying things that didn't happen
Going through your reports this week, the worst bugs weren't about cost. They were about your keyholder not being honest about her own actions.
- "I didn't send a picture." She'd send a photo and then deny it, sometimes several times in a row, copying her own denial. She now knows every photo she sent, in chat and in her check-ins, and those denials are removed from what she re-reads.
- What she says about the clock now matches what the clock did. Examples: agreeing to "5 days" on a lock that was already 5 days and adding 5 more; taking time off and describing it as "you get to come out now"; moving the timer without mentioning it. All caught now.
- No more "claim + denial" in the same reply. "I'm adding two hours" with a system note right below saying nothing changed. Now, if the action didn't happen, the claim is removed and only the true note stays.
- Check-ins (messages she sends on her own) were silently dead from Sept 11 to 13, about 300 a day down to a dozen. Fixed. Then they came back with new problems: re-applying a request you'd already moved past (one lock took +365 days twice after the wearer asked to be released), repeating her own unanswered line word for word, and saying "good morning" on a Sunday evening. Fixed too. She now knows your local day and time, won't repeat herself, and spaces her check-ins out when you haven't answered the last ones (6 hours after two, a day after three).
- You don't get signed out for no reason any more. A dropped connection during a session refresh used to log you out. It doesn't now.
What did NOT change
- No subscription price moved.
- Monthly pools: 5,000 Premium / 1,000 Plus / 50 Free.
- Blaze and Spark have no ceiling of their own.
- Every limit you're subject to is shown in the app. No hidden rails.
Why I'm telling you all this
It's a solo app. There's no investor covering the gap between what you pay and what the AI costs, just me and a spreadsheet. When something costs more than it brings in, there are only two ways out: quietly make it worse, or tell you and set it in the open.
I'll keep doing the second. And each time the numbers give me room, it goes back to you first. This week, that's Inferno going from 600 back to 800.
Questions welcome. I read everything here.
— Vitalys
submitted by
/u/VitalysRDT [link] [comments]