No ads. No pop-ups. Just a quiet corner of the web to read your articles.
ScrapBook is a minimalist "read later" web app. Paste in the URL of any article or blog post, and it scrapes the headline, main image, and body text — stripping out ads, navbars, and clutter — then saves it into a clean, Kindle-style distraction-free reading view.
🔗 Live demo: scrap-book-zeta.vercel.app
- Paste any article URL and save it with one click
- Automatically extracts the title, main image, and body text
- Strips out scripts, navbars, footers, ads, and other page clutter
- Kindle-style distraction-free reading view
- Light / dark mode toggle (remembers your preference)
- Built with plain HTML, vanilla CSS, and vanilla JS — no frontend frameworks
| Layer | Tech |
|---|---|
| Backend | Python, Flask |
| Scraping | BeautifulSoup4, Requests |
| Frontend | HTML, vanilla CSS, vanilla JavaScript |
| Hosting | Vercel |
ScrapBook/
├── app.py
├── requirements.txt
├── static/
│ ├── style.css
│ └── script.js
└── templates/
├── index.html
└── reader.html
git clone https://github.com/<your-username>/ScrapBook.git
cd ScrapBookpython -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activatepip install -r requirements.txtCreate a .env file in the project root:
UPSTASH_REDIS_REST_URL=your-upstash-url
UPSTASH_REDIS_REST_TOKEN=your-upstash-token
Get these values from your Upstash console, or from the Storage tab of your project on Vercel if you've linked a database there.
python app.pyVisit http://127.0.0.1:5000 in your browser.
This project is deployed on Vercel, using Upstash Redis for persistent storage (Vercel's own filesystem is read-only/ephemeral, so article data can't be saved to a local file in production).
To deploy your own copy:
- Push this repo to your own GitHub account
- Import it into Vercel (New Project → Import Git Repository)
- Add an Upstash Redis database via the project's Storage tab
- Deploy
- Sites that render content with heavy JavaScript (many single-page apps) may not scrape well, since the backend only fetches static HTML
- Some sites block non-browser traffic outright
- Article extraction uses simple heuristics, so it can occasionally miss a short paragraph or grab a stray caption/ad line
- Delete / archive saved articles
- Tags and search
- Smarter content-extraction algorithm
- Reading progress tracking
MIT — feel free to fork and build on this.