Journal
5 min read

The email I was waiting for: Souffle is on the App Store

Three weeks after four rejection reasons, the right email finally arrived. How the appeal was accepted, what the whole journey taught me, and where to download Souffle.

This time, it was the right email.

"Your app is now Ready for Distribution." Seven words, at the top of an App Store Connect message, on an ordinary morning. I read it three times — the same suspicion as with the rejection, but inverted. No four reasons. No numbered guideline. Just: it's good, it's live.

Three weeks earlier, I wrote about the first rejection: four reasons in a single email, one of which kept me up at night. Here's how it ended.

The easy reasons, first

Three of the four reasons were problems I could fix myself, and fast.

The tax trap: I filled out the W-8BEN, the Certificate of Foreign Status, and the DAC7. Twenty minutes of US forms from France, and the Paid Apps Agreement flipped to "active." With that, the Tip Jar — my in-app purchases — became visible again in sandbox. The reviewer could finally see it.

The medical disclaimer: one sentence added to the description. "Souffle is not a medical device. Consult a healthcare professional before making any medical decisions." Ten seconds. Done.

The background audio: no code to change — it was already correct. I just spelled out the reproduction steps in the App Review Notes. Launch the app, start a session, enable a soundscape, lock the screen, wait. The audio keeps playing. This time, the reviewer followed the path.

Three reasons out of four, neutralized in one evening. That left the one that terrified me.

The reason that could have killed it

The organization account — guideline 5.1.1(ix). Apple wanted Souffle published under a Developer Organization account: business registration, legal entity, DUNS number. I only have an individual developer account. A guy who codes in the evenings to help his father breathe, not a company.

If Apple held its ground, I'd have to create a legal entity before I could publish. For a free app. That's the kind of blocker that can bury a project, or at least push it back by months.

So I pushed back. Calmly, in writing, in the Resolution Center. I made three factual points:

Souffle gives no personalized medical advice. It diagnoses nothing, prescribes nothing, measures no vital sign. It offers breathing rhythms and soundscapes — wellness, not medicine.

The medical disclaimer was now in place, clearly visible.

The app doesn't write sensitive health data. It logs mindfulness minutes to Apple Health, via HealthKit, and that's it. No heart rate, no clinical data.

And then I waited. That's the hardest part: you've sent your arguments, there's nothing left to do, and no timeline is announced. You refresh App Store Connect ten times a day knowing it changes nothing.

Apple replied three days later. They accepted my appeal. Souffle stays on my individual account.

I don't know if it was my arguments, the disclaimer, or simply the fact that the app is obviously harmless. Probably all three. But the lesson is clear: a rejection is not a verdict. The Resolution Center isn't a dead mailbox. A human reviewer reads your reply. If you argue calmly, with facts rather than frustration, you can move the line.

What the journey taught me

Looking back over the past three months — from the first commit to "Ready for Distribution" — here's what stays with me, and what I wish someone had told me at the start.

The code is the easy part. I spent weeks on SwiftUI, HealthKit, AVFoundation, synchronized haptics. And in the end, none of the four rejection reasons were about the code. They were all administrative, fiscal, or regulatory. The hardest thing about shipping an app isn't coding it. It's everything else.

The Business tab before anything. Before you even submit, go check that your agreements are active and your tax forms validated. Twenty minutes, and it saves you the dumbest rejection there is.

Health/wellness draws extra scrutiny. Mandatory medical disclaimer, the organization-account question, caution around HealthKit data. If your app is anywhere near health, anticipate these three points from day one.

Reviewers don't guess. Anything that can't be tested in two taps from the home screen must be described in the App Review Notes. My background audio was correct from the start — it still earned a rejection, for lack of instructions.

Appealing works. When you're sure you're in the right, argue. Calmly, with facts. The worst that can happen is Apple holds its position — exactly where you'd have stayed by giving up.

Souffle is available

That's it. After three months of evenings and weekends, a rejection, an appeal, and a lot of patience, Souffle is on the App Store.

Guided breathing, 13 soundscapes, synchronized haptics, 4 preset programs and custom ones too. No subscription, no account to create, no data ever leaving your iPhone. You install, you breathe.

Download Souffle on the App Store

It's free. If the app helps you sleep, calm down, or focus, the nicest thing you could do is leave a review. It helps other people find it — and, incidentally, it makes the dev who built it for his father smile.

The email I was waiting for arrived. Now the real work begins: v1.1 is already on the workbench.

— Pato