Blog Post Reading Streak Tracker
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This script tracks your blog and article reading activity, building a daily reading streak that motivates you to read consistently. It detects when you scroll through an article, records the reading session with duration and scroll depth, and updates your streak count for each day you read at least one article past a configurable threshold. A floating badge displays your current streak, total posts read, and total reading time. The panel shows detailed statistics including best streak, goal progress, and a 7-day history of reading activity. Perfect for building a daily reading habit.
WHERE IT RUNS
The script works on any article or long-form content page across the web—blogs, news sites, documentation, research papers, tutorials, and more. It automatically detects article containers and tracks scroll activity within the main content area. The script runs on any website, adapting to each page's structure.
HOW TO USE
After installation, the script automatically tracks your reading on any article page. A floating badge in the corner of your screen shows your current streak count. Open the panel to view detailed statistics: current streak, best streak, goal progress, total posts read, total reading time, active days, and a 7-day history calendar showing which days you read. Configure settings including streak goal, reading threshold percentage, minimum reading time, badge position, and whether to show stats in the badge. The script records a reading session when you scroll past the configured threshold (default 50%) and spend at least the minimum time (default 10 seconds) on the page.
TECHNICAL MECHANISM
The script uses a multi-stage reading detection and streak tracking pipeline. First, it identifies the article container using a prioritized selector strategy with a minimum text length threshold. Second, it tracks scroll position using scroll event listeners with debouncing to calculate scroll percentage relative to the article container. Third, it records reading sessions when scroll percentage exceeds the configured threshold (default 50%) and reading duration exceeds the minimum time (default 10 seconds). Fourth, it stores reading data as JSON in GM_setValue with a schema including history (date→post count), totalPosts, totalReadingTime, streak, bestStreak, lastReadDate, and an array of individual post records with URL, title, date, duration, and percent. Fifth, it calculates streak by iterating backward through consecutive days in the history object, checking for reading activity on each date. The badge and stats panel update dynamically whenever reading data changes.
THE PANEL
The settings panel is fully draggable and can be positioned anywhere on your screen. It automatically snaps to the nearest edge when released, keeping your workspace organized. The panel can be collapsed to a small bubble showing only a gear icon, and restored with a single click. Its position is remembered across page reloads using GM_setValue. The panel also responds to the Escape key, which instantly hides it until you click the bubble again. All settings are saved immediately when changed and persist across browser sessions.
PLEASE NOTE
This script requires the free BotGentz extension to run. Reading tracking is per-device and not synchronized across browsers. The script relies on scroll detection which may not work perfectly on all page layouts or with infinite-scroll content. The script does not access, store, or transmit any personal data or browsing history. All reading data is stored locally in your browser's userscript storage and never leaves your device.