Instat is a local-first, privacy-focused open source dashboard for exploring and visualizing your personal Instagram export data.
🔒 100% Privacy First: All data processing happens entirely inside your browser or on your local machine. No data is ever sent to external servers or cloud services.
- 📁 ZIP & Folder Import: Load your official Instagram data export directly via
.zipor uncompressed folder. - 📈 Interactive Analytics: Overview of followers, following, activity mix (ads, posts, videos), story interactions, saved posts, and liked content.
- 💬 Dedicated Message Viewer: Browse Instagram Direct Message conversations (
message_1.json) in a chat UI with emoji reaction decoding. - 🖼️ Media Gallery: Explore local stories, archived posts, and profile media assets.
- 🔍 Real-time Client Search & Pagination: Effortlessly filter and browse through large datasets (10,000+ items).
- 🌓 Light & Dark Mode: Modern design system built with CSS variables and responsive layouts.
- Clone or download this repository.
- Open
index.htmlin any modern web browser. - Click "Import via ZIP" or "Import via Folder" to select your Instagram export data.
If you prefer extracting your data locally into data/sources:
- Extract your Instagram ZIP export into the
data/sources/directory. - Run the scanner script to pre-compute statistics:
python scripts/scan_data.py
- Start the local server:
python server.py
- Open
http://localhost:8000in your browser.
├── index.html # Landing page with ZIP/Folder import options
├── server.py # Lightweight Python HTTP server with client logging
├── app/ # Main Web Dashboard
│ ├── index.html # Core Dashboard UI
│ ├── media.html # Media Gallery Viewer
│ ├── messages.html # DM Conversation Viewer
│ └── assets/ # CSS Design System & JS Modules
├── scripts/ # Python Data Analytics Scripts
│ ├── scan_data.py # Data scanner & statistic aggregator
│ ├── find_not_following_back.py # Non-follower detector
│ └── validate_stats.py # Stat validation helper
├── data/ # Local Data Directory (Git Ignored)
└── LICENSE # MIT License
- Zero Network Transmission: Your data is parsed locally via IndexedDB and client-side JavaScript.
- Git Safety: Raw export files (
data/sources/), generated statistics (data/data_stats.json), and outputs (data/generated/) are strictly git-ignored by default.
This project is licensed under the MIT License.