Work

Library

Everyone in my family reads, so the book count only ever goes up. We lend books to friends and relatives too. My sister was tracking all of it by hand in a spreadsheet. I built us a real app instead.

Role
Designer and engineer
When
2025
Links
Live
The Library book grid in dark mode, with a filter sidebar for author, genre and borrow status, and borrower names on the books that are out

My family reads. The collection grows, books get lent to friends and relatives, and someone has to know where they went. My sister, thirteen or fourteen at the time, had taken that on herself: a spreadsheet with every title, its author, and who currently had it.

It worked, until it didn't scale. So I built the thing the spreadsheet was pretending to be.

What it does

  • A grid or list of every book, each card opening into its own detail view
  • Books added one at a time, or in bulk by uploading a CSV
  • Title, author, genres, and a flag for books that aren't allowed out of the house
  • Lending: set a borrower, mark a book returned
  • Search across titles, authors and borrower names
  • Sorting by title, author, date added, borrower or borrow date, in either direction
  • Filtering by author, genre, borrow status and whether borrowing is allowed

Where it runs

Django and React on Postgres, hosted on Railway, which idles the service after ten minutes of inactivity. For an app opened a few times a week by one family, that constraint is a feature rather than a limitation.

Built with

  • Django
  • React
  • Vite
  • Postgres
  • Tailwind