If you run an Instagram for business, you know the problem: the built-in stats show 90 days of numbers and then vanish, there's no export, and comparing "this month vs last" is something you can only do by hand in a spreadsheet. Paid analytics services cost $60-300/mo and still don't answer the main question: "which content actually brings followers." Instagram Dashboard by MaxICo Labs closes this gap for free: it's a self-hosted, open-source dashboard on GitHub that pulls data directly from the official Instagram API and adds an AI layer on top, from Reels transcripts to a script generator in your own style.
What this product is and how it's different
Instagram Dashboard is a web app you deploy on your own server (a $10/mo VPS is enough). The data goes nowhere to third parties: the Instagram token stays with you, file storage lives on a Docker volume, and there's no external database at all. Before installing, you can check out a live demo: inst-dashbord.maxicolabs.com.
Three fundamental differences from SaaS analytics:
- Free and forever. The code is open, there are no licensing restrictions on commercial use. You pay only for your server and for OpenAI tokens if you enable the AI features (usually $2-6/mo per account).
- Deeper data than the built-in stats. The dashboard accumulates history day by day, so in six months you'll have a six-month growth chart, not "the last 90 days."
- AI works on your data. The Reels script generator learns not from abstract "viral formulas" but from the transcripts of your own top videos.
What each tab shows
Overview: KPIs with period comparison
The first screen is the key metrics for 7, 30, or 90 days: reach, views, interactions, follower growth. Each number is shown with a delta against the previous period: not just "12,400 reach" but "12,400, that's +18% over the last 30 days." The comparison itself turns statistics into conclusions, you immediately see whether the account is growing or stagnating.
Posts: a table with ER%
All posts and Reels in a table with reach, likes, comments, saves, shares, and a calculated ER% for each post. Sort by ER and you get an honest content ranking, where a Reel with 50,000 views can lose to a carousel with 3,000 reach, because people actually engaged with the carousel.
Growth: followers by day + Reels markers
A chart of follower growth by day with markers at the points where Reels were published. The dashboard calculates the "Reels views -> follower growth" correlation: you see exactly which videos converted viewers into followers and which collected views "into the void."
Insights: days of the week, saves vs shares
A breakdown by day of the week (when your audience actually engages, not "post on Tuesday at 6 PM" from someone else's article) and a saves-vs-shares split. These are two different signals: a save = "useful, I'll come back," a share = "I want to show others." The content strategy for them is different.
Transcripts: Whisper + speech patterns
The dashboard runs your Reels' audio through Whisper and builds a transcript base. Then comes pattern analysis: what script length gives more views, whether questions in the hook work, which "magnet words" recur in your top videos. This is a level of analysis no mass-market service has.
AI scripts: a generator in your style
Based on your top transcripts, AI writes new Reels scripts, with your turns of phrase, your hook structure, and your manner. Not "10 ideas for Reels" from a generic template, but text that sounds like you. More on the approach is on the AI for content page.
Audience: real demographics
Gender, age, country, city, from the official API, not from a third-party parser's estimates. Plus AI advice on the metrics: the model looks at your numbers and says exactly what's slipping and what to do about it.
Stack and architecture
| Component | Technology |
|---|---|
| Frontend + backend | Next.js 16 |
| Styles | Tailwind v4 |
| Charts | Recharts |
| AI | OpenAI (chat + Whisper) |
| Storage | File-based, on a Docker volume |
| Deploy | Docker + Traefik |
There's no external DB, and that's a deliberate decision: fewer components, nothing crashes, a backup = a copy of one folder. The admin login works out of the box, all /api routes are protected by auth, and secrets aren't committed to the repository.
How to set it up in 10 minutes
git clonethe repository from GitHub onto your server.- Copy
.env.exampleto.env, set the admin password and the OpenAI key. docker compose up -d, the container builds and comes up, Traefik issues HTTPS.- Log into the dashboard with the admin login.
- Connect Instagram: you need a Business or Creator account, a Meta app with the use case "Manage messaging & content on Instagram" and the
instagram_business_manage_insightspermission. You paste the generated access token right into the UI, in the settings (Settings), without editing files on the server.
The longest step is getting the token in the Meta dashboard (5-7 minutes if you already have a Business account). The deploy itself is three commands.
Who it fits and who it doesn't
It fits: SMM specialists and agencies (one dashboard per client, no monthly subscription), bloggers and experts who monetize Instagram, businesses with their own account that need to report on dynamics, and anyone who doesn't want to hand access tokens to a third-party SaaS.
It doesn't fit: if you have a personal (not Business/Creator) account, the API simply won't return stats; if you have nowhere to host and no desire to deal with a VPS even at the "paste three commands" level; if you need to monitor other people's accounts, that's a different task, closer to parsers.
Security: what's done out of the box
Self-hosted doesn't mean "figure out security yourself." Basic hygiene is built into the product: the admin login works right after the first launch, all /api endpoints are protected by auth, an anonymous visitor won't pull out metrics or the token. Secrets (the OpenAI key, the Instagram token, the admin password) live only in .env and are never committed to the repository, they simply don't make it into git. Traefik automatically issues and renews the HTTPS certificate, so the token doesn't travel the network in plain text.
What's left on your side: a decent admin password (not "admin123"), closed SSH on the server, and a regular git pull for updates. This is the standard minimum for any self-hosted service.
Three typical usage scenarios
An agency with 5 clients. One VPS, the dashboard, the client accounts' tokens. A monthly client report is put together in 10 minutes from screenshots of the "Overview" and "Growth" tabs instead of half a day copying numbers into a presentation. Savings versus SaaS billed "per profile" are from $200/mo.
An expert growing through Reels. The main value is the transcripts and generator tabs: over a month a base of your own scripts builds up, you see the length "corridor" and the working hooks, and new scripts are written from your own top videos. Content production speeds up 2x without losing the author's voice.
A business with in-house SMM. Every Monday the marketer opens "Overview" for 7 days, looks at the deltas versus last week and the AI advice on the metrics, and walks into the planning meeting with specifics: what slipped, what to scale. Instead of "seems like this month was decent."
What it really costs
Honest monthly math: a VPS from $10, OpenAI tokens $2-6 with active use of the transcripts and generator, the product itself $0. Together up to $16/mo versus $60-300 for SaaS analytics with fewer capabilities. If you have several accounts, the savings multiply, because one instance serves them all with no surcharges for "additional profiles."
Instagram Dashboard is free and open on GitHub, clone it, deploy it, use it. And if you need a custom version for your business, different metrics, integration with your CRM, white-label for an agency, the MaxICo Labs team builds turnkey enhancements. Start with a free 30-minute AI audit: maxicolabs.com/contact.