A single self-contained HTML page that analyzes your own Instagram data export (likes, comments, saves, and direct messages) entirely in the browser. No server, no upload, no build step: download index.html, open it, drop in your export ZIP.
- Reads an Instagram "Download Your Information" export ZIP directly in the browser using JSZip.
- Extracts only timestamps and anonymized contact/account IDs. Message text, comment text, and any other content is explicitly ignored and never parsed for meaning.
- Computes engagement metrics: total and unique likes/comments/saves over time, message volume, unique message contacts.
- Computes sociability metrics: who initiates conversations vs. who responds, average response latency in both directions, how concentrated your messaging is across your top contacts, and what share of activity happens overnight.
- Renders everything as Chart.js charts, sortable tables, and an hourly/day-of-week activity heatmap.
- Exports any chart or table to CSV, or the whole report to PDF.
Nothing here talks to a network. Every dependency (Tailwind, Chart.js, JSZip, html2canvas, jsPDF, a Google Font) loads from a CDN via <script>/<link> tags the same way any static page would, but once the page is loaded, all analysis of your data happens locally in JavaScript. Your ZIP file is read with the browser's File API and never leaves your machine.
- Go to Instagram's Download Your Information tool and request your data in JSON format.
- Download the resulting ZIP (don't unzip it).
- Open
index.htmlin any modern browser. - Drop the ZIP onto the upload area.
There's nothing to install. Clone the repo and open the file:
git clone https://github.com/hydawo/instagram-activity-analyzer.git
cd instagram-activity-analyzer
open index.html # or just double-click it- Initiation ratio: messages are grouped into per-contact threads, with a new "session" starting whenever the gap since the last message exceeds 24 hours. The ratio is the share of sessions you started.
- Response latency: for each message you send, if the immediately preceding message in that thread was received (not sent), the gap between them counts as your response time, and symmetrically for the other side.
- Top-contact concentration: share of your total sent messages that went to your three most-messaged contacts.
- Nocturnal activity: share of messages/engagement that happened between 11pm and 6am local time.
Open source, do whatever you want with it.