Inspiration

Klemens is a terrible reader. He picks up a book, reads a few pages, and then doesn't read for a month. When picking up the book again, he obviously forgot half of it. If you are like Klemens, PocketShelf should be your fix. It nudges you to take notes while he is reading. PocketShelf then uses Apple’s local AI models to create a “What Previously Happened”, to give you an easier time to pick up the book again.

Frank has been tracking his reading adventures since 2019. He was always using a specific app until that specific product got a redesign, making it less usable for him. He went to explore alternative book trackers but quickly discovered that the competition was either quite expensive or not up to par in terms of what he wanted from a reading tracker. He therefore decided to build his own.

How we built it

After Klemens found out that Frank was working on a reading tracker, we hopped on a call and decided to join forces. The official start was after WWDC. We had a three-hour-long session on what we both wanted to see in a book tracker and explored different app names. We set out several milestones in GitHub and added some tickets in each of them that would make sense in that specific milestone. We had several milestones: Prototype, Private TestFlight, Public TestFlight, Ready for Pre-Order, and Day One Patch.

We built our prototype with the core functionality as quickly as possible, so we can actually start using it. We both read books to determine how we want the app to work. We improved on the prototype for the Private TestFlight and released that amongst our close friends. We also pitched it to Apple via Feature Nominations early, which got us a feature request already mid-development.

As a technology for building PocketShelf, we chose SwiftUI and focused on iOS 26 only. We always wanted to make it a product that feels at home on iOS 26, embraces Liquid Glass and Apple’s Foundation Models, and launches on day one with the OS.

What it does

We want PocketShelf to be a simple, elegant reading tracker with the reader in mind. It allows you to add any book you want, in any form you want, and track what you are reading.

While you are reading, you can listen to calming background noises. The app nudges you into writing down notes while your memory about the book is still fresh. Next time you pick up the book, PocketShelf will generate a summary for you so you never forget where you left off. Think of it like a “Previously On…” feature in TV series.

Challenges we ran into

Foundation Models required quite a lot of prompting improvements in order to work how we wanted. In the beginning, the model would either reply in the wrong language, refuse to make a summary at all, or respond like it’s in a chat window: “Here’s the summary you asked me: [summary in here]”. Klemens was able to fix most of these issues during an event hosted by Apple in Amsterdam.

As it was the first time either of us was working on an indie project with someone else, we had to learn a lot about using the right tools, setting expectations, and especially communicating.

There was also a bit of impostor syndrome in here that Frank was dealing with. Competing with all these other developers trying to shoot their shot, and also working together with such a highly respected developer, did create some pressure to up my game. This was scary but also a great motivator.

Frank was also working full-time and in the midst of a move from city to city. Combining all of these was a challenge, but just speaking out about the pressure helped relieve a bit of the stress.

Accomplishments that we're proud of

We picked up app icons and marketing material relatively early on in the development process because we hoped Apple would ask us to provide feature material. We had the honour to work with tremendous people for it, with Matthew Skiles on the icon and Daria Travnytska on the marketing material. And it worked out; Apple showed interest and did actually feature us. A huge accomplishment, resulting in 3,000 downloads in the first week.

We were also very proud of the positive feedback we got and the nice articles from the press. A highlight there was being selected as the Indie App of the Week from Create With Swift and making it into the prestigious yearly iOS review from Federico Viticci on MacStories.

Getting the Live Activity and Widget to work were also big accomplishments. Frank spent a lot of time hacking the requirements in, and we eventually came up with a setup that works quite well.

We are also very proud of how the app ended up looking. While the main focus was to have a minimalistic and functional app, we also didn't want to make it boring. And by embracing liquid glass, we were able to pull this off.

And finally, we are really proud of the fact that we actually shipped the app. This has been on both our minds for a while, but actually being able to work through the summer and bring this idea to life is still incredible.

What we learned

We learned that choosing OpenLibrary as our main data source wasn’t optimal. We first thought that the number of books that were missing wouldn’t be a huge problem, as we are able to add them ourselves. We quickly saw emails flooding in from users that had a book they wanted to add, but the data source couldn’t find it. And we know for certain that many people didn't write us an email and uninstalled the app directly. Klemens found an alternative paid data source that did offer a far more solid database, which we already shipped in a new version last week.

We also learned a lot about syncing data and the current reading session between the app, Live Activity, and the Widget. With the timer of the app not available in the Live Activity and issues occurring when the app was killed while the Live Activity was still running, we had to come up with solutions like storing a backup when the app goes into the background.

We definitely learned to better assess our time and abilities. We were very ambitious with our initial draft for the release candidate. Besides everything we shipped, we also wanted our first version to have solid iPad UI, a Watch app and statistics. We discovered that all these features weren’t going to make the cut, as we wanted to nail the experience in the main app first. So we decided to postpone these features for future updates. And we were already able to ship the improved iPad UI on the day after going live.

What's next for PocketShelf

With the next update, PocketShelf will add Roadmap. Roadmap is a package made by the great Jordi Bruin, Antoine van der Lee, and Hidde van der Ploeg. It allows us to show you what we are working on and let you vote on what is most interesting for you. You will also be able to suggest new features.

Our first major update (1.1) will be about a user-suggested feature, and this will support more book sources. Users will be able to add their already massive library from other major platforms. Additionally, we plan to add iCloud sync.

We also planned a Halloween-themed update that will include a community event. We can't wait to share more about that once spooky season is on its way!

Another big update is planned near the end of the year that will focus more on reading statistics. How does the name: “PocketShelf Wrapped” sound? The name is not set in stone, but we’re sure you can figure out what it might entail ;-)

This is just the start. We have many more things planned for PocketShelf beyond 2025 and can't wait to share them with you!

Built With

Share this project:

Updates