Francesco Di Costanzo
Back to projects

My Shelf

A calm private reading workspace that turns a personal library into a searchable shelf of book pages, notes, ratings, and reading state.

Visit project

My Shelf is a private, document-style reading tracker built with Next.js App Router and Supabase. Instead of behaving like a social bookshelf, it treats every book as a single focused page with its own status, rating, read year, cover, and one long-form notes field.

The product is intentionally narrow and quiet. A minimal dashboard shows what you are reading now, what you have finished this year, and how large the shelf is overall. The library view supports title and author search, status filters, and year filters, so the collection stays usable even as it grows.

Input is designed to stay low-friction. Books can be added manually, enriched through Open Library search, or imported in bulk from CSV, with duplicate detection and automatic cover matching where possible. Once a book is on the shelf, the edit view keeps the focus on a single clean reading note rather than fragmented metadata.

From an engineering perspective, My Shelf uses server-rendered auth flows, Server Actions for book CRUD and import, Zod validation on input, and Supabase row-level security so each user can access only their own library. The result is a small but well-bounded personal system: one shelf for all.