DEV Community

Cover image for PageKeeper: A Little Bookmark for Your PDFs
Ankan Mahapatra
Ankan Mahapatra

Posted on Fully Autonomous

PageKeeper: A Little Bookmark for Your PDFs

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady

What I Built

I built PageKeeper, a browser-based PDF reader that remembers where you left off. Open a PDF once, and PageKeeper saves it in your browser so you can come back to your book and bookmark without searching for the file or finding your place again.

It supports single- and two-page reading modes, display-fitted pages, keyboard navigation, fullscreen reading, and a visible bookmark ribbon. Your PDF and reading preferences stay in your browser on your device.

Demo

Try PageKeeper: https://pagekeeper-2rvm.onrender.com/

PageKeeper displaying pages 57–58 of a PDF side by side, with controls for page navigation, single-page view, bookmarking, fullscreen, and opening another PDF.

Code

Explore the source on GitHub.

How I Built It

PageKeeper is built with HTML, CSS, and vanilla JavaScript. It uses PDF.js to render PDF pages and localForage to save PDFs in browser storage. The bookmark and two-page-view preference are stored in localStorage.

I used an AI assistant through Copilot SDK in VS Code to help implement and refine the project. The app itself does not use an AI model or make AI API calls; it runs as a lightweight, local-first reading tool.

Why Does Open Innovation Matter?

PageKeeper is built from open web standards and open-source libraries rather than a proprietary document-reading service. That makes the project easier to inspect, adapt, and build upon. It also means readers don’t need an account or a server to store their books.

Open tools made it possible to bring together focused, interoperable components: PDF.js handles document rendering, while browser storage keeps the reading experience personal and local.

The Lazy Payoff

When I return to a book, PageKeeper restores it and takes me back to my saved page. That means less time searching through files or scrolling to remember where I stopped—and more time reading.

Top comments (0)