A self-built fully automated reading analytics dashboard with zero infrastructure, refreshed automatically to turn personal data into actionable insights.
This project is built to reflect how I believe small, personal tools should work:
- Zero infrastructure → No servers, databases, or cloud costs. Runs entirely on GitHub (Actions + Pages).
- Fully automated → Scheduled GitHub Actions keep data fresh—no manual runs or home servers.
- Transparent by default → All code, data logic, and outputs are public. No black boxes.
- Sustainable & low-stress → Simple pipeline, easy to maintain, no roadmap pressure. It evolves only when real needs arise.
- Cost-effective → Uses only free tiers (GitHub, Google Sheets API)—proving powerful automation doesn’t require budget.
- Total articles: 3000+ articles with read rate percentage
- Read vs. unread breakdown: By year, by month, and by source (Substack, freeCodeCamp, GitHub, Shopify, Stripe)
- Yearly trends: Year-by-year distribution with 5-year default view (adjustable)
- Monthly trends: Monthly distribution across all sources or by individual source
- Interactive charts: Year chart (bar/line toggle), monthly breakdown, and per-source statistics
- Source insights: Per-source read rates, Substack author averages, and unread article tracking
Currently extracting articles from:
- freeCodeCamp
- Substack
- GitHub (Added 2024-03-18)
- Shopify (Added 2025-03-05)
- Stripe (Added 2025-11-19)
graph TD
A["Article Extraction - Python"] -->|Extract & Deduplicate| B["Google Sheets"]
B -->|Read Articles| C["Metrics Calculation - Go"]
C -->|Generate JSON| D["metrics/YYYY-MM-DD.json"]
D -->|Read Metrics| E["Dashboard Generation - Go"]
E -->|Generate HTML| F["index.html with Chart.js"]
F -->|Deploy| G["GitHub Pages for Live Dashboard"]
Article Extraction: Python web scrapers extract articles from engineering sources, deduplicate, and store in Google Sheets
Metrics Calculation: Go program reads articles from Google Sheets, calculates metrics, outputs JSON
Dashboard Generation: Go program reads metrics JSON, generates interactive HTML with Chart.js visualizations, deploys to GitHub Pages
For deep technical details, see the architecture docs:
- Extraction Pipeline Design
- Dashboard Pipeline Design
- GitHub Actions Workflows
- Jenkins CI/CD - Comparison with GitHub Actions
Learn about the journey of this project: from local-only execution, to Docker containerization, to fully automated GitHub Actions workflows.
Read Part 1: Article Extraction Pipeline
Part 2: Dashboard & Metrics Pipeline (Coming soon) - The evolution to metrics calculation and interactive visualization on GitHub Pages