Enhances Medium's stats page by displaying real-time "Today Views", "Today Reads", and "Yesterday Earnings" for each story — without leaving the page.
⚠️ Disclaimer: This tool is unofficial and not affiliated with Medium. It only reads publicly available data from your own account for convenience.
- Adds Today Views and Today Reads (Member) next to each story
- Fetches Yesterday's Earnings and Member Reads
- Fetches and updates the data in real-time without refreshing the page.
- Lightweight and integrates smoothly with Medium's original design.
Works in both Chrome and Firefox (Manifest V3 compatible)
git clone https://github.com/ekin-ceylan/medium-stats-vizor.git
cd medium-stats-vizor
npm install
npm run build
- Open Firefox and go to
about:debugging#/runtime/this-firefox. - Click on "Load Temporary Add-on".
- Select the
manifest.jsonfile inside the/distfolder. - Go to your Medium Stats page:
https://medium.com/me/statsand click "Always Allow" from extension settings.
Note: This is a temporary installation. The extension will be removed when you close Firefox. You can reload it anytime through
about:debugging.
- Open Chrome and go to
chrome://extensions/. - Enable Developer mode (top right).
- Click on "Load unpacked".
- Select the
/distfolder
- Go to your Medium Stats page:
https://medium.com/me/stats - You will see new Refresh buttons added next to each story.
- Click the button to fetch today's views and reads for that story.
- It also fetches today's stats when the page first loads.
- Today Views: All Views (Member Views)
Displays the total number of views today (including both members and non-members), with member views shown in parentheses. - Today Reads: All Reads (Member Reads)
Displays the total number of reads today (including both members and non-members), with member reads shown in parentheses. - Yesterday Earnings: Last Earns (Member Reads)
Displays the Revenue from member reads yesterday, with member reads shown in parentheses.
medium-stats-vizor/
├── src/
│ ├── main.js # Entry point
│ ├── images/
│ │ └── screenshot.png
│ ├── models/
│ │ └── result.js
│ └── modules/
│ ├── constants.js
│ ├── extend.js
│ ├── fetch-stats.js
│ └── utilities.js
├── public/
│ ├── icons/
│ │ ├── icon-16.png
│ │ ├── icon-32.png
│ │ ├── icon-48.png
│ │ └── icon-128.png
│ └── manifest.json
├── README.md
├── .editorconfig
├── .prettierrc
├── .prettierignore
└── .gitignore
Contributions are welcome!
If you would like to contribute:
- Please fork this repository.
- Create a new branch for your changes.
- Open a Pull Request describing your updates.
For major changes, please open an issue first to discuss what you would like to change.
- Adding better error handling (retry on failure)
- Chrome Web Store and Firefox Add-ons publication
- RefreshAll Button
- Mobile Usage
MIT — feel free to use and modify this project. Please attribute if you fork or extend it publicly.
