How albarstring/follower-tracker works
FollowTrack is a browser-based Instagram follower analyzer: users upload Instagram JSON exports, the app parses follower and following lists, computes relationship categories, and presents lists and analytics. The primary workflow is routed by App, with DataContext holding the parsed data and derived results in browser local storage. The enhanced parser/context pair is present as a separate implementation, but the sampled routing does not show it used by the app. Source excerpts do not establish any server-side processing or external data service.
Main entry points: App.tsx App routing · DataContext.tsx Data provider · UploadData.tsx Upload page · DashboardOverview.tsx Dashboard overview
Components 20
App experience
- App routing
frontend/src/App.tsx - Landing page
frontend/src/pages/Landing.tsx - Dashboard layout
frontend/src/components/layout/DashboardLayout.tsx - Navigation sidebar
frontend/src/components/layout/Sidebar.tsx
Data ingestion
- Upload page
frontend/src/pages/UploadData.tsx - JSON parser
frontend/src/utils/parser.ts
Relationship analysis
- Data provider
frontend/src/context/DataContext.tsx - Browser local storage
- Enhanced data provider
frontend/src/context/DataContext-enhanced.tsx - Enhanced parser
frontend/src/utils/parser-enhanced.ts
Results and UI
- Dashboard overview
frontend/src/pages/DashboardOverview.tsx - Analytics page
frontend/src/pages/Analytics.tsx - Unfollowers page
frontend/src/pages/Unfollowers.tsx - Fans page
frontend/src/pages/Fans.tsx - Mutuals page
frontend/src/pages/Mutuals.tsx - User list
frontend/src/components/ui/UserList.tsx - Card components
frontend/src/components/ui/Card.tsx - Button component
frontend/src/components/ui/Button.tsx - Class name utility
frontend/src/utils/cn.ts
Other components
- Browser user
Connections 28
- Browser user → App routing: opens
- App routing → Landing page: routes to
frontend/src/App.tsx - App routing → Dashboard layout: routes to
frontend/src/App.tsx - App routing → Data provider: provides state
frontend/src/App.tsx - App routing → Dashboard overview: routes to
frontend/src/App.tsx - App routing → Upload page: routes to
frontend/src/App.tsx - App routing → Unfollowers page: routes to
frontend/src/App.tsx - App routing → Fans page: routes to
frontend/src/App.tsx - App routing → Mutuals page: routes to
frontend/src/App.tsx - App routing → Analytics page: routes to
frontend/src/App.tsx - Landing page → Upload page: links to
frontend/src/pages/Landing.tsx - Dashboard layout → Navigation sidebar: renders
frontend/src/components/layout/DashboardLayout.tsx - Upload page → JSON parser: parses JSON
frontend/src/pages/UploadData.tsx - Upload page → Data provider: updates lists
frontend/src/pages/UploadData.tsx - Data provider → Browser local storage: loads and saves
frontend/src/context/DataContext.tsx - Enhanced data provider → Enhanced parser: uses parser
frontend/src/context/DataContext-enhanced.tsx - Dashboard overview → Data provider: reads results
frontend/src/pages/DashboardOverview.tsx - Analytics page → Data provider: reads results
frontend/src/pages/Analytics.tsx - Dashboard overview → Card components: renders
frontend/src/pages/DashboardOverview.tsx - Analytics page → Card components: renders
frontend/src/pages/Analytics.tsx - Unfollowers page → Data provider: reads results
frontend/src/pages/Unfollowers.tsx - Fans page → Data provider: reads results
frontend/src/pages/Fans.tsx - Mutuals page → Data provider: reads results
frontend/src/pages/Mutuals.tsx - Unfollowers page → User list: renders
frontend/src/pages/Unfollowers.tsx - Fans page → User list: renders
frontend/src/pages/Fans.tsx - Mutuals page → User list: renders
frontend/src/pages/Mutuals.tsx - Button component → Class name utility: uses
frontend/src/components/ui/Button.tsx - Card components → Class name utility: uses
frontend/src/components/ui/Card.tsx