📚 Bookboy
A single-file, distraction-free PDF reader built to solve the "Digital Reading Struggle."
Most PDF readers are built for contracts, invoices, and forms. They are terrible for books. They are too bright, too sterile, and make "active reading" (collecting quotes, analyzing diagrams) a headache.
I built Bookboy to bring the focus of a physical library—and the utility of a research notebook—into the digital browser.
🧠 The Problems & The Solutions
1. The "Passive Reading" Problem
The Issue: Physical books allow you to dog-ear pages and cut out clippings. Digital readers make you a passive observer. If you see a great quote, taking a screenshot usually captures the UI or requires external tools. The Solution: ✂️ The "True Look" Snip Engine. See a diagram or quote you want to keep? Click the Scissors, drag a box, and it snaps a high-res image into your Sidebar Notebook.
- Smart Baking: It doesn't just copy the text; it "bakes" your current theme (Dark Mode/Paper), the CSS filters, and the grain texture into the image.
- Download: Each clip can be instantly downloaded as a PNG.
2. The "Digital Amnesia" Problem
The Issue: You close your browser, and the PDF reader forgets where you were. You waste time scrolling trying to find your place. The Solution: 💾 Smart Persistence. The reader generates a unique signature for every file you open. When you drop that PDF back in—even days later—it instantly jumps to the exact page where you left off. It also remembers your view preference (Single vs. Book Mode) and theme.
3. The "Sterile Screen" Problem
The Issue: Flat, glowing white pixels are unnatural to the human eye. They cause strain and break immersion. The Solution: 📜 Algorithmic Paper Grain. The reader applies a subtle, generative noise texture (using SVG turbulence) over the entire screen. This breaks up the harsh digital flatness and mimics the imperfections of real paper, giving your eyes a textured surface to rest on.
4. The "Flow State" Problem
The Issue: Silence feels empty, but music is too distracting for deep reading. The Solution: 🔊 Generative Focus Noise. The reader uses the Web Audio API to generate Brown Noise (deeper and softer than White Noise) in real-time. It masks background sounds and triggers deep focus without looping files.
5. The "Clumsy Interface" Problem
The Issue: Opening a file requires navigating menus. Turning pages requires hunting for small buttons. The Solution: 🖐️ Tactile UX.
- Drag & Drop: Just throw your PDF anywhere on the screen to open it.
- Ghost UI: Controls vanish when reading.
- Page Input: Click the page number to type exactly where you want to go.
✨ Technical Features
- Zero Dependencies: A single HTML file (fetches PDF.js via CDN).
- Infinite Canvas: Zoom (
Ctrl+Scroll) and Pan (Click+Drag) logic similar to Google Maps. - Book Mode: Side-by-side rendering that respects odd/even page spreads.
- Privacy First: Everything happens in your browser. No files are uploaded to any server.
- HiDPI Rendering: Canvases auto-scale to ensure crisp text on Retina/4K displays.
🎮 Controls
| Action | Control |
|---|---|
| Open Menu | Hover Top of Screen |
| Open PDF | Drag & Drop File (or Folder Icon) |
| Toggle Notebook | Press B or click Icon |
| Toggle Ruler | Press R or click Icon |
| Fullscreen | Press F or click Icon |
| Next / Prev Page | Arrow Keys |
| Zoom In/Out | Ctrl + Scroll |
| Pan Page | Click & Drag (Left Mouse) |
| Snip/Clip Text | Click ✂️ -> Drag Box |
| Jump to Page | Type in Top Box or Click Bottom Bar |
🚀 How to Use
- Download: Save the
reader.htmlfile to your computer. - Run: Double-click it to open in Chrome, Edge, Firefox, or Safari.
- Load: Drag a PDF book onto the window.
- Immerse: Press
Ffor fullscreen and disappear into your book.
Created because reading on a screen shouldn't feel like office work.

