Quite strange equation, don’t you think? But in a developer’s world, math works in unexpected ways.
Six months ago, I decided to build the best EPUB reader for Apple devices. I started immediately and, in four months, I had a working prototype with about 90% of the functionality. Everything worked as expected. Without fear, I launched my first TestFlight.
I expected anything and everything, but not this: I slid back to 10% done.
Somewhere in 2025, I watched Sean Allen’s video on the “90/90 rule.” Now I truly know, what that second 90% means.
TestFlight revealed two truths to me:
- Developers are always wrong
- When you think you’re almost done, you’ve barely started
These two things forced me to rethink the app’s internals, design, and UI.
I spent the last two to three weeks working harder than in the previous four months. I spent nights fixing bugs, unifying the interface, working on promised features, and making sure, that basics are there (like a consistent close button: top-right X, always).
And even now, I’m not “finished.”
Since this series is about justRead.app development, here’s the latest state with tech details.
What was fixed
The killer problem was simple: the app was freezing and crashing. Something I didn’t experience in development, something TestFlight users experienced a lot.
justRead.app loads epub files from the cloud, often buried deep in subfolders (not yet downloaded). When folder with books is selected, it ran three heavy processes:
- Analyze all the (sub)directories for epub files (no files downloaded)
- Extract thumbnails and some accessible data from those files (still no files downloaded)
- Parse metadata (downloading of files starts now) Users saw a “frozen” app, they tried everything, then app then crashed. What was worse: on relaunch with a selected library, it repeated the exact same cycle with the exact same result for user.
The fix:
The app is running the same processes, but now in the background with clear user progress indicators. Users can read downloaded books while those three processes are running. Simple and completely avoided with better testing.
Smaller bugs got fixed too: streak calculations, read-time tracking, bookmark saves.
What was changed
Non-crashing users gave me around 20 ideas like:
- Tap anywhere on a book row to open it (not just the cover)
- Hide settings on book start
- Load font manually from menu, not automatically from folder
I experimented with all the ideas, iterated on users feedback and implemented what was the best fit.
What was added
No breakage risk here. Those were added:
- Statistics dashboard
- Roadmap with user voting
- Alphabet jump bar for libraries
- Extra settings tweaks.
Plus about 50 other small things, like highlighting your current TOC chapter.
TestFlight #2
It’s live today.
This time, I’m expecting crashes, freezes, and issues.
As a user, why is this all important?
You want polished apps, no crashes, intuitive user interface. You are expecting a developer who cares about the app, because he uses it.
That’s why TestFlight matters. Apple enables it, testers refine the app and the users get app as polished as possible.
The voting roadmap builds on this: you shape justRead.app’s future, prioritizing what you want.
As a developer, why is this all important?
We build apps and systems because we love to.
Sean’s rule reminds us: the final 90% polish is the app.
Rush development and release, and you ship a prototype.
Deliver the app polished, and you create something users love.
That’s why 90% + 90 % makes 100%.
And to answer the question in the beginning: it does take a lot more than what you have planned. Even if you have years of experience in development.
justRead.app is an epub reader for iPhone, currently in TestFlight._
Peter
Reader, Developer, justRead.app Creator




Top comments (0)