Skip to content
all projects

2025 · Web · TypeScript

Strawberry Library

A cozy strawberry-milk reading app that keeps your books in your own Google Drive and your highlights in your own browser.

Illustrated pink book with a strawberry heart

Overview

Strawberry Library is my personal reading app. There is no server and no third-party storage: your books live in a folder in your own Google Drive called Strawberry Library, and everything else stays in your browser. The app uses Google's drive.file scope, which means it can only ever see files it created itself, never the rest of your Drive.

Reader Features

  • Reads both PDF and EPUB
  • Highlights in four strawberry-milk colors, each with optional notes
  • Bookmarks per book, plus auto-saved progress and reading time stats
  • Shelves: Reading, To read, Finished, and Favorites, with search across the whole library
  • Light and dark mode, and both of them are pink-tinted on purpose
  • Keyboard shortcuts in the reader for paging and zoom

How It Works

Book files sync to Drive, while titles, shelves, progress, highlights, and notes live in IndexedDB through Dexie. Once you open a book its file is cached locally so it loads instantly the next time. If you ever clear your browser storage, a Sync from Drive button brings your books back.

Tech

Next.js 15 with the App Router, React 19, TypeScript, and Tailwind CSS with a custom strawberry-milk palette. PDF rendering is react-pdf, EPUB is epub.js, and sign-in is Google Identity Services, so there is no backend at all.