Skip to content
Emir Şeren
Case study
  • 01Work
  • 02About
  • 03Playground
  • 04Contact
  • 01Work
  • 02About
  • 03Playground
  • 04Contact
e34emir@gmail.comGitHub ↗LinkedIn ↗
← IndexCase study 03 / 04

Follow Clarity

Instagram follow analyzer · privacy-first

Your data stays in your browser.

Type
Privacy-first web tool
Status
Live on Netlify
Links
Code ↗ · Live demo ↗
Follow Clarityfollowers_1.json · following.json · samplelocal only

Read in this tab. Nothing is uploaded, and no login is needed.

Followers
11
Following
12
Duplicates removed
1
  • hhakan.demo
  • jjale.demo
  • mmert.demo
  • ooya.demo
  • ppelin.demo

A simplified re-creation of the real app, running on sample data — try it.

01

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.

02

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.

03

How it fits together

read locallyusernamestwo liststhree listsYour export.zip.json.htmlparseInstagramExport()unzip (JSZip)followers / followingread usernamesnormalizeUsernames()trim, strip @lowercasededupeanalyzeFollows()differenceintersectionResult tabssearch · sortcopy · CSV

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.

04

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.

05

Details

  1. 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.

  2. 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.

  3. 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.

06

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.

07

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.

Next case study

04Crypto Technical Analysis→
Back to all workGet in touch