Inspiration
I save a lot of articles with the intention of reading them later. The problem was never saving them — it was actually coming back and finishing them.
Most read-later apps are very good at building a library. Over time, though, that library can easily become another inbox: hundreds of interesting links waiting for "someday."
I built PagePanda around a slightly different question:
What if a read-later app was designed around finishing what you save?
That became the idea behind PagePanda — a private, offline-first reading app that combines a great reader with small nudges that encourage you to return to unfinished articles and build a reading habit.
What it does
PagePanda lets you save articles from almost anywhere using the system Share Sheet and turns them into a clean, distraction-free reading experience.
The app includes:
- Offline reading
- Reading progress and Continue Reading
- Quick Read suggestions
- 8 distinct reading styles with light and dark appearances
- Highlights and notes
- Tags and shelves
- Table of contents and in-article search
- Code-friendly article formatting
- Reading streaks and activity insights
- Widgets and reminders
- Optional iCloud sync
- Native experiences across iPhone, iPad and Mac
PagePanda does not require an account and is designed to keep the user's reading library private.
How I built it
PagePanda is built primarily with Swift and SwiftUI.
A large part of the work went into the reading engine. Saved webpages have to be extracted, cleaned up and transformed into something that feels like a native article rather than simply displaying the original website.
The reader uses WebKit where appropriate while the surrounding experience — library, organization, reading progress, highlights, statistics, settings, widgets and navigation — is built as a native Apple-platform application.
I also built a Share Extension so saving an article takes only a couple of taps, widgets for bringing reading progress back to the Home Screen, and optional iCloud synchronization so the library can follow the user between devices.
RevenueCat handles PagePanda's premium entitlements and lets me iterate on monetization without mixing subscription logic throughout the rest of the app.
Challenges
One of the hardest parts was dealing with the web itself.
Every article is different. Some websites contain clean semantic HTML, while others rely heavily on JavaScript, unusual layouts, embedded media or site-specific markup. Turning all of them into a consistent reading experience required considerably more work than simply loading URLs in a web view.
Offline-first behaviour introduced another set of challenges. Articles, images, reading progress, highlights and notes need to remain reliable even when connectivity disappears, while optional sync must still feel seamless when multiple Apple devices are involved.
Another challenge was deciding how much functionality to add without turning PagePanda into the same kind of overwhelming library it is intended to solve. Features such as Quick Read, Continue Reading, streaks and reading activity are deliberately focused on one goal: helping the user return to something they already wanted to read.
What I learned
The biggest lesson came after launching.
People repeatedly described their saved-reading collections as a "graveyard" or talked about having hundreds of unread articles. That reinforced that the interesting problem is not bookmarking — it is managing the gap between intent and action.
Early users have also influenced the roadmap. Requests around smarter queues, stale saved articles, summaries, better handling of sources such as Reddit, and additional ways of rediscovering old saves are helping shape what PagePanda becomes next.
I also learned that building the product and finding users are two completely different challenges. Since launch I've been iterating not only on the app, but also its onboarding, App Store presentation, pricing and how PagePanda communicates its core idea.
What's next
I want PagePanda to become increasingly helpful without becoming noisy.
The next iterations are focused on smarter ways to surface articles at the right moment, better support for more kinds of saved content, and features that make large reading queues manageable rather than intimidating.
The long-term goal remains simple:
Save fewer things for "someday" — and actually finish more of what you save.


Log in or sign up for Devpost to join the conversation.