Follow Clarity
Instagram follow analyzer · privacy-first
Your data stays in your browser.
Read in this tab. Nothing is uploaded, and no login is needed.
- Followers
- 11
- Following
- 12
- Duplicates removed
- 1
- hakan.demo
- jale.demo
- mert.demo
- oya.demo
- pelin.demo
A simplified re-creation of the real app, running on sample data — try it.
What it does
Follow Clarity reads the followers and following files from an Instagram data export — the ZIP, or the JSON or HTML files inside it. It compares the two lists and shows who you follow that doesn’t follow you back, who follows you that you don’t follow back, and your mutual follows. Each list can be searched, sorted A–Z or Z–A, copied, exported as CSV, and opened as profile links.
Why I built it
The project explores a privacy-first way to analyse an Instagram export: everything runs locally in the browser, using only the data export Instagram already provides — no login, no scraping, no unofficial APIs and no upload to a server.
How it fits together
The whole pipeline runs in the browser. There is no backend, no API route and no upload endpoint, so the export has nowhere to go.
Project stack
Next.js, React, TypeScript, Tailwind CSS, JSZip, Vitest
The project’s stack, not my skill list. React and TypeScript are still on my learning path.
Details
- 01
No server at all
Parsing and comparing happen in the browser. The project’s rules rule out a backend, API routes and sending export data anywhere — including analytics.
- 02
A parser for messy exports
Exports come in several shapes: split files like followers_1.json and followers_2.json, HTML instead of JSON, different profile link formats. The parser recognises each file by its name or content and reads usernames from all of them.
- 03
Compare clean names
Usernames are trimmed, stripped of @, lowercased and de-duplicated before comparing, so the same account can’t end up on both sides by accident.
What the project explores
This project demonstrates a privacy-first architecture where Instagram export data is parsed locally in the browser, without login credentials, scraping, unofficial APIs or server-side uploads.
Limits
- It can’t look up an account by username. It only reads an export you provide.
- Results are only as complete as the export; a limited date range can give incomplete counts.