E-Library
A personal catalogue for your physical books — organised by room, added with a barcode scanner, shared with whoever you choose.
The Problem
Physical books don't organise themselves. They pile up across rooms, get lent out and forgotten, and become impossible to search through when you can't remember the exact title.
E-Library started as a personal itch to scratch — a way to catalogue everything on the shelves at home and actually be able to find it again. The room-based model mirrors how books are physically distributed, the barcode scanner makes adding new ones quick, and loan tracking means borrowed books don't disappear into the ether.
Type
Personal · Solo
Status
Paused
Live at Vercel
Commits
76
Deployment
Vercel
Core Concept
Your shelves, digitised room by room
The central organising idea is the room. Rather than a single flat list, every book belongs to a virtual room that corresponds to where it physically lives. You can create as many rooms as you need — named whatever makes sense for your home — and move books between them as your shelves change.
Rooms make browsing feel natural. Looking for that novel you left in the bedroom last winter means going to the Bedroom room, not running a search you might not remember the exact title for. The model keeps the digital catalogue anchored to the physical reality of where your books actually are.
Living Room
coffee table reads, display shelves
Bedroom
bedside stack, nightstand rotation
Office
reference books, technical manuals
Storage
archived series, boxed collections
Adding Books
Scan the barcode on the back cover — the rest fills itself in.
Point your phone camera at the ISBN barcode on any book and the scanner reads it, queries a book database, and pre-populates the title, author, genre, description, and cover image. Adding a full shelf takes minutes rather than a manual typing session. A fallback manual entry form handles edge cases where a barcode scan returns nothing.
What doesn't work (yet)
Cover photo detection is implemented but not functional.
The original plan included recognising books from a photo of their cover rather than a barcode scan. The feature was built and wired up but the accuracy wasn't reliable enough to ship — it remains in the codebase as unfinished work. The barcode scanner covers most real-world cases well enough that this gap hasn't been a blocker.
Features
What the platform does
Room-based Organisation
Books live in virtual rooms that mirror the physical spaces in your home. Instead of a flat list of everything you own, you browse by room — living room, bedroom, office, storage — so finding a specific book means thinking about where it actually is, not remembering a title exactly.
Barcode Scanner
The fastest way to add a book is to scan its ISBN barcode with your phone camera. The scanner reads the code, queries an online book database, and pre-fills the title, author, genre, cover image, and other metadata automatically. Manual entry is always available as a fallback.
Smart Search & Filtering
Search across the entire collection by title, author, genre, or custom tags. Filters narrow results further — by room, series, or loan status — so you can answer questions like 'which sci-fi books are currently lent out?' in seconds.
Loan Tracking
Mark a book as lent to a friend, record who has it, and filter by loan status. The platform keeps a record of where your books are so you don't have to rely on memory when someone asks to borrow something — or when you want it back.
Reading Progress & Notes
Log your current page, mark books as read or in-progress, and attach private notes. Notes can capture anything: a quote worth remembering, a recommendation from a friend, or a personal rating after finishing.
Collection Sharing
Share your library or a specific room with friends and family. Shared views let others browse your collection, make recommendations, and facilitate book swaps — turning a personal catalogue into a small social layer.
Tech Stack
Framework
- Next.js
- React
- TypeScript
Styling
- Tailwind CSS
- shadcn/ui
Database
- Drizzle ORM
- PostgreSQL
Tooling
- Bun
- ESLint
- Vercel