Fable: A Product Teardown
Where a book-club app builds habits, and where it drops them
Frameworks: RICE, persona-led problem framing

02 / competitive landscape
The competitive set
Fable sits in a crowded room. Everyone here solves a slice of "reading, socially"; nobody owns all of it.
| Competitor | What it does | Strengths | Weaknesses |
|---|---|---|---|
| The StoryGraph | Personalized book recommendations and reading statistics. | Friendly interface, mood-based recommendations, detailed analytics. | Smaller community; lacks integrated social features like book clubs. |
| Geneva | Group communication platform supporting various communities, including book clubs. | Strong community-building tools, flexible discussion features, supports offline meetups. | Not solely focused on books; needs setup for book-related communities. |
| Goodreads | Widely used platform for tracking reading, writing reviews, joining discussions. | Extensive user base, diverse community features, Amazon integration. | Outdated interface, ads, limited social engagement. |
| Wattpad | Users read and write original stories across genres. | Large engaged community, strong discoverability for new writers, potential for book deals. | Quality control issues; not focused on traditional books or book discussions. |
| AO3 (Archive of Our Own) | Nonprofit platform for fanfiction and original works. | No ads, extensive tagging system, strong fan community. | No official publishing or book club features; limited mainstream book discussion. |
The gap I kept coming back to: StoryGraph owns the data, Geneva owns the group, Goodreads owns the scale. Fable is the only one trying to hold discovery, community and habit in one place, which is exactly why the habit loop deserves more attention than it currently gets.
03 / personas
Who I designed for
Five personas, built around the different reasons someone opens a reading app.

Rachael Green, 25
Software Engineer
“After staring at the computer screen all day, I want to do something away from screen.”
Motivations: Finding a community to discuss and explore books, discovering new titles, sharing reviews.
Frustrations: Limited local book clubs; wants discussion deeper than surface-level reviews.
Goals: Have meaningful conversations about books, get personalized recommendations, track reading progress.

Evan Anthony, 27
Social Media Marketer
“My creative inspiration mostly comes from watching different kinds of series!”
Motivations: Discussing popular TV shows, sharing theories, connecting with people who watch what he watches.
Frustrations: Spoilers on social media; no dedicated space for in-depth show discussion.
Goals: Join spoiler-free discussion rooms, get updates on favourite shows, take part in community events.

Sam Jones, 52
Book Shop Owner
“My wife loved reading. Post her demise, I want to ensure there is a space for readers!”
Motivations: Facilitating book discussions, managing club logistics, keeping members engaged.
Frustrations: Coordinating meetings, getting members to participate, sourcing discussion material.
Goals: Use Fable's club features to organize meetings, share reading milestones, keep discussions alive.

Ariel Totemham, 26
Author
“I want to shape the world, one book at a time!”
Motivations: Sharing her work, receiving constructive criticism, building a reader base.
Frustrations: Few platforms for new authors, difficulty reaching a target audience, little feedback.
Goals: Engage with readers, join discussions to understand audience preferences, promote her writing.

Rakhi Sharma, 24
Founder of an EdTech Firm
“My work is very stressful, I want to build a habit of reading everyday to unwind.”
Motivations: Reading as a tool for relaxation, stress reduction and personal growth.
Frustrations: Overwhelmed by daily stressors; looking for a constructive outlet for mental wellness.
Goals: Explore curated recommendations around mental wellness, and use reading challenges and streaks to actually start reading.
priority 1 / feature
Genre filters
Users should be able to filter books and shows by genre. As an avid reader and binge-watcher, I search by mood. Am I in the mood for a thriller? A romantic comedy? Or do I want a knight in shining armour riding in to save his princess? Genre-based filtering makes that possible.
There are a couple of ways to build it. The prerequisite either way is tagging genre on the book record in the database. After that, you can let users search a genre directly and return results.
The simpler route is a "Filter" button that opens the available genres. The user selects the ones they want and hits Apply.
Explore page, revised with filter entry point

Explore page, filter section

priority 2 / feature
Reading challenges and badges
One of the best ways to foster a community and build a new habit is to give people a way to bond over it.
Samsung Health, a fairly basic healthcare app, sees over 300,000 MAU on its monthly walking challenges and the leaderboards that come with them.
Duolingo, like Fable, uses streaks to build a habit. The difference is in the packaging: the animation that celebrates a streak increasing, badges for personal accomplishments, and notifications with actual personality. Worth noting for later: Duolingo has a "Mistake Mechanic": it rewards you for going back and fixing your mistakes. It gives you a badge, essentially, for having made them.
Walking challenges and badges on Samsung Health

Milestone streak animation (Duolingo)

Fable already has streaks. It hasn't yet turned them into a reason to open the app every single day.
Reading challenges
30-Day Reading Challenge: as the name suggests, the classic.
Around the World in 12 Books: read 12 international authors from around the world, over 12 months.
Judge a Book by Its Cover: post what you think a book will be about based on its cover, then review it once you've read it.
March into the Classics: every March, pick up a classic of your choice.
Book vs Movie: read the book, watch the adaptation, compare the two.
Badges
"Amateur Critique": 10 book reviews written. And other milestone badges along the way.
10 books in the "Did Not Finish" list. Why include that one? To credit the user for starting a book. It doesn't matter that they didn't like it. What matters is that they tried. (Duolingo's Mistake Mechanic, applied to reading.)
priority 3 / feature
A yearly Wrapped
A basic version of Wrapped already exists as Monthly Wrapped. There is no one alive who could convince me against Wrapped, but I think bi-yearly or yearly makes far more sense here. Realistically, people read a median of about 4 books a year.
Books read per person per year · Source: World Population Review, 2024

Even in the countries that read the most, that's under two books a month. Which means a monthly Wrapped looks rather empty. I'm speaking from personal experience. Over six months or a year, there's actually something to show:
The same treatment works for people logging television and film.
And instead of "Wrapped", the team could own the name: "Fable Footprints", or "Chronicles of <year>".
priority 4 & 5 / enhancement
Streak logging and where it lives
Fable's current streak log does its job. It's a list of dates, and you tap into one to log a book.
A calendar view would do the same job more intuitively, with the current date auto-selected. A green outline can mark the days a user already logged. To log another day, they tap that date, which takes them to the "choose book" page, and the date turns green. To deselect, tap the date again.
Fun fact: a calendar view taps into the Zeigarnik effect: humans dislike incomplete patterns, so they're motivated to close a streak.
Current streak logging page

Streak logging page, revised

Then there's placement. Streak logging currently sits in the middle of the home feed, surrounded by unrelated information. Moving it to the user page segregates all the user's own data from that chaos.
While I'm on the user page: instead of a "View Network" link that leads off to following and followers, why not show that metric on the page itself? I've used "Longest Streak" as a third metric. It could just as easily be "Lifetime Books", "Total Reading Time" or "Total Pages Read".
Current user page

User page, revised

UX fix
Adding books to a list
Three things about this sheet bother me as a user:
- No book name. Adding the book's title to the sheet reassures the user they tapped the right book.
- Removing should be symmetrical. To remove a book from the library, tapping the selected radio button again should do the trick.
- "Remove from library" sits where "Save" should be. Because of its placement, it gets confused with Save. This page has a vertical decision-making flow, so the Save button belongs at the bottom of the sheet.
Explore, add book to list

Explore, add book to list, revised

P.S. I am not a designer, so please consider these wireframes rather than designs.
thinking beyond features
Monetization
Fable currently sustains itself through:
- Affiliate and direct book sales: Fable likely earns a cut of purchases made through the app.
- Partnerships and licensing: collaborations with authors and publishers.
To grow, it will need more than that. Some directions:
Exclusive book clubs & author access
- VIP book clubs: private, invite-only clubs led by experts or celebrities.
- Author Q&As: live chats, AMAs, video discussions.
- Curated reading paths: step-by-step guides by experts around a theme.
Enhanced reading & discussion tools
- Voice notes and personalized annotations to share in clubs.
- Share a quote as an image with different backgrounds and fonts.
Gamification & engagement
- Badges and rewards for reading consistency.
- Discussion leaderboards for top contributors.
- Premium detailed reading habit stats.
Commerce & partnerships
- Limited-edition books, author-signed copies, Fable-branded merchandise.
- Corporate wellness and school partnerships: revenue and community pipeline.
- Offline club discussions and seamless multi-device syncing.
prioritization
Prioritization
I obviously don't know what resources the Fable team has, so these are rough estimates. I used the RICE framework.
| Feature | Reach (1-10) | Impact (1-5) | Confidence | Effort (1-10) | RICE |
|---|---|---|---|---|---|
| Genre-based filtering | 9 | 5 | 95% | 6 | 71.3 |
| Reading challenges & badges | 8 | 4 | 90% | 5 | 57.6 |
| Yearly / bi-yearly Wrapped | 7 | 3 | 85% | 4 | 44.6 |
| Improved user page UI | 5 | 3 | 75% | 3 | 37.5 |
| Calendar view for streak logging | 6 | 3 | 80% | 4 | 36 |
Build order, highest to lowest score
Genre-based filtering
Reading challenges & badges
Yearly / bi-yearly Wrapped
Improved user page UI
Calendar view for streak logging
The goal wasn't to produce the longest list of ideas, but to determine where product investment should go first.
I hope you enjoyed reading this as much as I enjoyed making it. I'm open to any feedback you have.