๐Ÿ“š Personal Reading Analytics

Your Reading, Visualized

No servers, no noise, just your data.

A lightweight analytics system designed to track engineering blog consumption and surface learning patterns without infrastructure overhead.

Origin Story

I used to follow a handful of engineering blogs, but checking each one for new posts became a chore, too many tabs, too easy to miss something. (Yes, Iโ€™ve definitely had 20+ tabs open at onceโ€ฆ ๐Ÿ˜…)

So I built a simple script to automatically pull article titles, dates, and links into Google Sheets, inspired by early Levels.fyiโ€™s โ€œno databaseโ€ approach. Everything in one place. No more tab-hopping.

Later, I got curious: What if I could actually see my reading habits over time? Not to โ€œoptimizeโ€ productivity, but to understand where my attention really goesโ€ฆ and which blogs still earn it.

That curiosity led me to build a lightweight analytics system in Go, powered by the same Python-collected data. The result? A personal reading analytics: a quiet mirror on my learning journey.

Engineering Principles

Zero Infrastructure

No servers or hosting costs. Runs entirely on GitHub Actions and Pages.

Fully Automated

Scheduled workflows keep data fresh, utilizing CI/CD governance for human-in-the-loop oversight.

Observability First

Uses an Event Sourcing pattern to decouple extraction from analytics, ensuring full auditability.

Cost Effective

Leverages free tiers (GitHub, MongoDB Atlas, Google Sheets) for powerful, budget-free automation.

Mastering the Information Stream

โœ“ Data Ownership: Complete control over your reading history and metrics.
โœ“ Operational Simplicity: Proves that sophisticated automation doesn't require a large budget.
โœ“ Actionable Insights: Identifies high-value sources and reading trends over time.
โœ“ Educational Laboratory: A playground for testing Go, Python, and Event Sourcing patterns.
โœ“ Minimalist Design: Focuses on domain value by eliminating infrastructure 'plumbing'.