Sapio: books chosen by mood, not genre
A reading companion that picks a book for how you feel, then helps you keep track of what you read.
- Timeline
- Self-initiated
- Platform
- Web
- Role
- Design and build
- Team
- Just me
In this case study
Overview
Most book apps want to know your taste before they'll suggest anything. Sapio starts somewhere simpler: how you feel today. Pick a mood and it suggests books to match, then helps you keep track of what you read, so finding the next book and sticking with it happen in the same place.
I designed and built it on my own as a React and TypeScript web app, with Gemini choosing the books, and the prototype is live above. The backend is still being built, so this page covers the research, the design, and a month of use by six people I know.
The problem
Book apps ask what you like. None of them ask how you feel right now.
Goodreads, StoryGraph and the rest open with a long form about genres and past favourites, so mood, the one thing that changes from day to day, never comes into it. And once people do find a book, keeping a log of it starts to feel like homework.
Research
Fewer people read for fun every year
Reading for pleasure is slipping. Among more than 236,000 Americans, the share of adults who read for fun on a given day fell from 28% in 2004 to 16% in 2023, about 3% a year. Anything that makes the next book easier to start pushes in the right direction.
Source: Bone, Bu, Sonke and Fancourt (2025), “The decline in reading for pleasure over 20 years of the American Time Use Survey”, iScience 28(9).
People already choose stories by mood
We already reach for books, films and music that nudge our mood somewhere better, often without noticing. Psychologists call it mood management. My own survey pointed the same way: 72% of 120 readers wanted to find books by mood, and that became the starting point for the home screen.
Source: Zillmann (1988), “Mood management through communication choices”, American Behavioral Scientist 31(3).
Too many options stop people choosing
Choice has a cost too. In a well-known field study, shoppers shown six jams were about ten times more likely to buy one than shoppers shown twenty-four. Later reviews found the effect depends on the setting, but readers told me something similar: a long list of recommendations is almost as hard to act on as none. I kept that in mind for every screen that asks you to pick.
Source: Iyengar and Lepper (2000), “When choice is demotivating”, Journal of Personality and Social Psychology 79(6).
Habits take months to form
Finding a book is only half of it. In one study, new daily habits took a median of 66 days to become automatic, anywhere from 18 to 254, so a tracker has to keep people coming back for months. In my survey, 81% said visual stats motivate them more than a plain log, and that shaped the tracker.
Source: Lally, van Jaarsveld, Potts and Wardle (2010), “How are habits formed: modelling habit formation in the real world”, European Journal of Social Psychology 40(6).
Three apps for one habit
The readers I interviewed were splitting one habit across three apps: reviews on Goodreads, discovery on StoryGraph and tracking in Notion. Sapio set out to hold all three.
Two readers to design for
Together, the research pointed to two kinds of reader. Arjun reads widely and wants better suggestions. Maya wants to read more and needs a reason to keep going. Every decision after this had to work for both.
Process
Finding a book
Ten rounds to move past the search bar
My first lo-fi wireframe opened on a search bar, like every other book app. Each round of feedback pushed it further from that, and by the tenth version the home screen opened on moods instead.
One question instead of a search bar
Since mood was the way in, the home screen asks just one question: how are you feeling? You answer by tapping one of fourteen mood cards, and Sapio comes back with books to match. Fourteen cards is still a choice, and the research showed how quickly too many options stop people choosing, so a Surprise Me button sits beside them and picks for you.
Ratings people already trust
When a book comes back, its card shows the Goodreads rating and review count. A score from a brand-new app wouldn't mean much to readers yet, so Sapio borrows the one they already trust.
Keeping at it
A tracker that gives something back
Finding a book was Arjun's problem; keeping going was Maya's. Reading goals, streaks, a timer and a stats page turn the log into something worth opening: the visual progress 81% of readers said would motivate them.
Four ways in, one place to keep track
Put together, there are four ways into a recommendation, one engine behind them, five shelves for the books you find, and one tracker for the books you read.
The system
Colour carries the mood
The visual system follows the same idea. Fourteen moods share five colour families, so moods that feel alike look alike, from lavender for thrilled and curious to sky for sad and tired. Purple is kept for anything you can tap.
Impact
Six people used Sapio for a month, me included. They're friends and family, so this is early user testing, not adoption.
“It helps me find books to my taste in one click. I'd got too lazy for the other apps and their long forms.” Ritik, an avid reader
Next phase
The backend comes first. After that, the plan is to make Sapio more personal: custom mood cards, personalised quizzes, a bookshelf builder and a book of the day, plus notes and highlights down to the chapter.
Reflection
Sapio taught me to let research set the brief, and then hold the product to it. The research said readers wanted to find books by mood and needed a reason to keep going, and a month of use backed both: four of the six came back for the recommendations, and the three of us building a habit leaned on the stats and the timer.
Building it myself changed how I scope. When every feature is also code I have to write, the question stops being what would be nice and becomes what a reader needs on the first screen.




