Introducing Capybook, a free web app for tracking your reading life that I built with Next.js. From concept to launch, the story of a side project born from a reader's frustration.

You know that feeling? You finish an incredible book, someone recommends three more right away, you tell yourself "I'll remember those"… and two weeks later, it's all gone. The title, the author, the person who recommended it — everything. Or you're standing in a bookstore, unable to remember whether you've already read that book or not.
That's exactly what kept happening to me. For months, I tried notebooks, phone notes, existing apps. Nothing really stuck. Either it was too complex, missing a key feature, or the interface made me want to run away.
So I thought: what if I built my own tool?
The result is Capybook — a free reading tracker web app, designed by a reader, for readers.
Capybook in one sentence
Capybook is a free web app that lets you track your reading, organize your library, rate your books and discover new recommendations — all in a clean and pleasant interface.
In practice, it's your digital reading companion. You can add every book you're reading, want to read, or have already read. You track your progress, leave reviews, set goals. And because reading is also about sharing, there's a community aspect that makes the experience even richer.

The heart of Capybook is your library. You can search for any book using the built-in search bar and add it to your collection in one click. Books are organized by status: currently reading, to read, finished.

For each book you're currently reading, you can log where you are. It's satisfying to see your progress bar move forward, and it motivates you to keep going. No pressure, no judgment — just a visual tracker of your progress.
Once you finish a book, you can rate it and leave a review. Over time, you build a real history of your reading life with statistics: how many books read this month, this year, which genres you prefer…
For the more motivated readers, Capybook offers reading challenges — goals that make reading even more engaging. And every day, you get personalized recommendations so you're never short on inspiration.
Reading is often a solitary activity, but sharing your discoveries with other passionate readers is what makes it even richer. Capybook includes a social dimension for exchanging around books and reading.
I've tried quite a few reading tracker apps. Goodreads is the giant in the space, but its interface feels dated and the user experience leaves much to be desired. Other apps look pretty but are too limited, or stuffed with unnecessary features that bury the essentials.
What I wanted was something simple, fast and pleasant — a tool I'd actually enjoy opening to update my reading, not another chore.
As a developer, there's nothing more rewarding than building a tool you use every single day. Every feature in Capybook was born from a real need, a personal frustration. No useless features added "because it looks good" — every element has a purpose.
It's also the best way to grow technically. When you're both the developer and the user, you don't let anything slide. Every bug annoys you personally, every improvement brings you joy.
You might be wondering why the mascot is a capybara. The answer is simple: the capybara is the most relaxed animal in the animal kingdom. Calm, chill, takes its time. That's exactly the vibe I wanted for this app — reading is a moment of calm and relaxation, not a race against the clock.
And let's be honest, a capybara with a book is just adorable.
Advice for developers: build for yourself
If you're looking for a side project idea, start with a problem you face every day. You'll be your own most demanding tester, you'll know the requirements inside out, and you'll have the motivation to finish because you genuinely want to use it. That's the recipe for the best side projects.
Technical section
What follows is for curious developers. If code isn't your thing, feel free to skip straight to the conclusion — Capybook works perfectly fine without understanding what's behind it!
Capybook is built with Next.js (App Router), providing a performant web application with excellent SEO and a smooth user experience. The app is also a PWA (Progressive Web App), meaning you can install it on your phone just like a native app.
Next.js was a natural choice: Server Components for pages that don't need client-side interactivity, API Routes for the backend, and the file-based routing system that greatly simplifies the architecture.
One of the key features is book search. The idea is that you can type a book title and find it instantly with its cover, author and description.
// Simplified example of the book search
async function searchBooks(query: string) {
const response = await fetch(
`https://www.googleapis.com/books/v1/volumes?q=${encodeURIComponent(query)}&maxResults=10`
);
const data = await response.json();
return data.items?.map((item: GoogleBookItem) => ({
title: item.volumeInfo.title,
author: item.volumeInfo.authors?.join(", "),
cover: item.volumeInfo.imageLinks?.thumbnail,
description: item.volumeInfo.description,
pageCount: item.volumeInfo.pageCount,
})) ?? [];
}Something I put a lot of work into is the responsive design. Capybook needs to be just as pleasant to use on mobile as on desktop — and in practice, most users use it on their phone, often to update their progress right after a reading session.
Being a PWA adds a layer of comfort: the app installs on your home screen, launches like a native app and works even with limited connectivity thanks to the service worker.
The biggest challenge was finding the right balance between simplicity and features. It's tempting to keep adding more, but every addition adds complexity to the interface and risks drowning the user experience. I learned to say no to certain ideas — even good ones — to keep the app focused on what matters.
The other challenge was book data management. Book APIs aren't perfect: missing covers, incomplete metadata, duplicates… I had to implement quite a bit of logic to deliver a clean experience despite sometimes chaotic data.
Whether you devour three books a week or read one a month — Capybook is made for you. It's free, it's simple, and it's built with love by someone who uses it every day.
No complicated sign-up, no intrusive ads, no data sold. Just a tool made to make your reading life a little more organized and a lot more fun.
Raphaël Raclot is a French full stack developer passionate about cybersecurity and modern web technologies. He specializes in React, Next.js, and TypeScript, and shares his discoveries, projects, and insights here.
Learn more about Raphaël
Why I created Pixora, a travel blog separate from my developer portfolio, using Astro and Tailwind CSS. 47 countries, 156 articles, 30,000+ photos and practical tips for travelers.

Discover how apps and social media exploit your dopaminergic system, and concrete strategies to take back control.

Discover 10 essential cybersecurity terms every developer should know to protect their applications and data from online threats.