Shipping Pulsefield: The Admin Nobody Warned Me About
I thought shipping an iOS app was mostly about the code and the review. It wasn't. Tax treaties, EU trader registration, two weeks of avoided forms, and a rejection I brought entirely on myself — the real cost of going indie.
I Severely Underestimated This
When I started building Pulsefield, I had a rough mental model of what shipping it would take: build the app, submit to App Store, wait for review, done. Maybe a rejection or two to navigate. Fine, manageable.
What I did not have a mental model for was everything else. The agreements, the tax forms, the regulatory filings, the banking setup — all of it happening in parallel with actually building the thing, on top of a full-time job. Nobody really talks about this side of going indie, and I walked into it completely blind.
The Agreements
It starts simply enough. You sign the Free Apps Agreement. Easy. Then you see the Paid Apps Agreement and you think, yeah I'll get to that.
Two weeks later you still haven't gotten to it, because every time you open it you find yourself reading about international tax treaties on the IRS website and staring at a declaration with a perjury clause. I'm a developer in Switzerland who just wants to ship a game. I've filed my own taxes since I was sixteen and I'd consider myself reasonably comfortable with official processes. This still stopped me cold.
When I finally submitted it, it went through basically immediately. Nothing burger. The form took maybe fifteen minutes. But I'd spent two weeks building it up in my head as something that could accidentally make me a tax criminal in a country I don't live in. Looking back it's almost funny. At the time it wasn't.
The bank account connection, by the way? Stayed inactive the whole time I was avoiding the Paid Apps Agreement. Almost certainly gated on it. Two weeks of wondering why banking wasn't activating, self-inflicted.
The EU Digital Services Act
This one genuinely caught me off guard.
As an app developer selling to EU customers, I'm legally classified as a trader. The DSA requires me to publish contact information — including a phone number — visible to potentially 450 million EU residents. I sat with that number for a while. Four hundred and fifty million people who could theoretically call me to ask about my haptic minefield game.
I ended up buying a prepaid business eSIM specifically for this, something I could shut off if it ever got weird. Submitted the form, and then waited ten days for EU approval — refreshing my email constantly, convinced I'd ticked the wrong box somewhere and the application was silently rejected. It wasn't. It went through fine.
Ten days of low-grade anxiety over a form that was also, in the end, fine. There's a pattern here.
The Marketing Website Side Quest
While setting up App Store Connect I noticed it wanted a Support URL, a Marketing URL, a Privacy Policy URL. Right. So that's a whole website I need to build.
I bought the domain pulsefield.app, used v0 to generate a starting point, and built it out from there. Not a complaint — it's good to have — but it was a detour I hadn't planned for, arriving at a point where I was already in "work, eat, work on Pulsefield, sleep, repeat" mode.
The App Review Itself
With all of that finally in place, the actual review process was — by comparison — pretty manageable.
My strategy going in: start small. Submit a minimal version first, get it approved, build confidence from there. Same approach I use for new features at work. I implemented core gameplay, basic UI, hit submit, got blasted with a wall of warnings about unfilled fields, fixed them, submitted again.
Then the wait. There's a specific kind of anxiety that comes with App Store review. You imagine someone in California opening your app, glancing at it for thirty seconds, and laughing before hitting reject. Probably not what happens. But the thought visits anyway.
"In Review." Then: "Pending Developer Release."
First submission, first approval. I won't pretend I wasn't disproportionately pleased with myself.
Getting Absolutely Destroyed by My Own Overconfidence
After beta testing — which included the genuinely humbling experience of watching real users completely fail to get through the tutorial while I sat next to them saying nothing — I fixed some things and was ready to submit 1.0.0 for real.
Two prior approvals. Zero rejections. I was, in hindsight, dangerously confident.
I expanded availability from Switzerland to ten countries — Germany, Austria, UK, US, Australia, Singapore, and more. I skipped the TestFlight beta review step entirely. Updated screenshots, selected build, clicked submit.
Not one hour later, my app was in review. And then — one minute after that — rejected.
Guideline 2.1 — Information Needed.
Apple wanted a screen recording, clarification on external services, information about regional differences. Reading it I was genuinely confused at first — what had changed? I hadn't introduced new features. But then I understood: I had never once provided review notes. Never submitted a screen recording. And I'd just expanded from one small country to ten markets including the US. Of course that triggered a different review flow.
My brain went places. Was Apple punishing me for submitting previous builds, getting them approved, and then rejecting the release myself? Did someone flag my account as spam? Did I previously get lucky with a reviewer who rubber-stamped things because they grew up in Switzerland and felt some solidarity? Probably not. But I thought about it.
The rational explanation: going from Switzerland to ten countries including the US almost certainly escalates scrutiny. That's it. That's probably all it was.
I recorded a screen capture of the gameplay, wrote proper review notes explaining the app uses no external services, no login, no accounts — just Core Haptics, local notifications, and optional Game Center — and resubmitted. 24–48 hours this time.
Resubmitting
In the middle of the night, my phone buzzed.
Pending Developer Release.
Done.
Things I Wish I'd Known
The business setup is a whole project on its own. Tax forms, banking, regulatory filings — none of it is impossible, but none of it is instant, and all of it needs to happen before you can ship. Treat it as a parallel workstream from day one, not an afterthought you'll get to later.
Fill out the review information field every single time. Doesn't matter how simple the app is. Assume the reviewer knows nothing. Write it like you're explaining it to someone who has never heard of your app and has five other things to review.
Don't skip the TestFlight beta review. It's a lighter-touch review that happens before full distribution. It would have caught my Guideline 2.1 issue before I burned a submission on it. I learned this the expensive way.
That approval notification feels incredible. Even when you half-expect it. There's something about a real human (or close enough) looking at something you built from zero and deciding it belongs on the App Store. It lands differently than a test passing.
The code was the part I felt prepared for. Everything around it — that's what actually took me by surprise.