| name | My Tsundoku |
|---|---|
| tagline_fr | Collectionner des livres qu’on ne lira jamais, mais avec méthode. |
| tagline_en | Collecting books you’ll never read, but doing it properly. |
| facts_fr | Next.js 16, local-first sur IndexedDB, synchro Supabase, PWA hors ligne. |
| facts_en | Next.js 16, local-first on IndexedDB, Supabase sync, offline PWA. |
Tsundoku (積ん読) is a PWA for organizing personal book collections. Inspired by the Japanese concept of letting unread books pile up, it provides a Kanban-style board to track books across four stages: wishlist, unread pile, library, and to sell. Available in French and English, with light and dark mode. Works offline with local-first storage — optionally sign in to sync across devices and contribute to the community book catalog.
- Next.js 16 (App Router, Turbopack) + React 19 + TypeScript
- Tailwind CSS v4 for styling
- Dexie.js for IndexedDB (local-first storage)
- Supabase for auth (email OTP code), cloud sync, storage, and community catalog
- Serwist for PWA / service worker (configurator mode)
- @dnd-kit/core + @dnd-kit/sortable for drag-and-drop
- motion for animations
- @zxing/browser for barcode scanning
- react-image-crop for cover photo cropping
- Vitest for testing
cp .env.example .env.local # fill in your Supabase credentials
npm install
npm run devOpen http://localhost:9876.
| Variable | Description |
|---|---|
NEXT_PUBLIC_SUPABASE_URL |
Supabase project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Supabase publishable (anon) key |
npm run build # next build && serwist buildnpm test # single run
npm run test:watch # watch modesrc/
├── app/ # Next.js App Router pages
│ ├── page.tsx # Home — Kanban board
│ ├── add/ # Add book (manual entry, barcode scan)
│ ├── book/[id]/ # Book detail & edit
│ ├── settings/ # Settings & backup
│ └── ~offline/ # Offline fallback page
├── components/ # Reusable UI components
├── hooks/ # Custom React hooks (useBooks, useBook, useBooksByStage, useIsMobile)
└── lib/ # Business logic, types, DB, constants
Planned features (in no particular order):
- Share your Tsundoku — Share your book piles and recommendations with friends
- Book clubs — Find readers with the same books and start a club
- Find in bookstores — Find your books in online bookstores
- Reading statistics — Track how many books you read per month and year
Have a suggestion? Get in touch.
Auto-deployed on Vercel on push to main.
This project is licensed under the GNU Affero General Public License v3.0.
Commercial licensing available — contact w@revah.paris.
Made with care by William

