[ 01 ]
Why I'm building it
I kept losing track of unfinished series, and release dates I'd seen online were gone by the time they mattered. Existing trackers each cover one type of media, or treat everything like a plain list.
I wanted one place that feels like a real bookshelf and helps you actually finish what you start.
[ 02 ]
What it will do
- Shelf, grid and list views with cover art pulled from public databases.
- Statuses, progress, ratings, tags and custom shelves.
- Automatic release checks for ongoing series, with email and push reminders.
- A spin wheel and a mood-based picker for choosing what's next.
- Installable on your phone as a web app (PWA).
[ 03 ]
Focus areas
Besides the app itself, this project is where I practise the two areas I want to grow in.
Security
Threat modelA written threat model for the app.
AuthenticationModern authentication: Argon2 password hashing and rotating refresh tokens in secure cookies.
Abuse protectionRate limiting, and access-control tests.
ChecksSecurity scanning in CI, and an OWASP ZAP report.
Data
An event-tracking model behind three dashboards, plus a SQL and pandas case study.
Personal statsReading, watching and playing stats for the user.
Product analyticsHow the app is used.
Security monitoringWhat the app sees when someone tries something they should not.
Hollow dots mean planned, not built yet.
[ 04 ]
Stack
FrontendNext.js, TypeScript, Tailwind
BackendFastAPI, SQLAlchemy, Alembic
DatabasePostgreSQL (Neon)
