Every change we ship to Unfollio, with the date and a short note about what it does. We publish this because in our category most apps quietly break when Instagram updates the data export format — and visible maintenance is one of the few ways to tell a real product apart from an abandoned one.
Renamed the product from UnfollowMap to Unfollio across the site
Shipped
Public `/privacy-proof` page — shows the literal HTTP request the upload sends, plus 60-second DevTools verification steps
Shipped
Public `/changelog` page — what you're reading
Shipped
"Last shipped working" badge on the homepage, switchable to a "degraded" or "broken" state without redeploying when Instagram changes the export
Shipped
In-context disclosure on the upload page: "ZIP is parsed in your browser. Only follower/following usernames are sent to our server — never the file itself."
Production-readiness pass
Security
Enabled Postgres row-level security policies on every user-data table — defense against direct-from-browser Supabase queries leaking data across users
Security
Atomic audit-commit RPC with per-user advisory lock — concurrent uploads from the same user now serialize instead of race-corrupting state
Account deletion: a `DELETE /api/account` route + a confirm-typed-"delete" button in Settings, cascading through every table
Shipped
Dashboard, Timeline, and Watchlist rewritten to read from Supabase directly (previously called a defunct API server and silently returned empty)
Fix
Marketing copy now matches what's actually built — removed "encrypted at rest" (false), "7-day free trial" (no payment system), "AI ghost scores" and "churn forecast" (not implemented)
Fix
Sign-in flow handles OAuth errors, expired magic links, and missing codes with a friendly error page instead of silently redirecting
Extra insights from the export
Parser
Extended the Instagram export parser to extract three more files: `pending_follow_requests.json`, `blocked_profiles.json`, and `recently_unfollowed_accounts.json`
Shipped
Upload results now include collapsible sections for: your earliest followers (with the date they followed you), pending follow requests, blocked accounts, and recently unfollowed
Shipped
Most competitor apps gate these features behind a paid plan — they're free in Unfollio
Viewed / Not-viewed triage
Shipped
Mark accounts as "viewed" while going through your unfollower list — no more re-checking the same names every time
Shipped
Tab filter between All / Not viewed / Viewed with live counts
Shipped
"Mark all viewed" batch action
Shipped
Backed by per-user database state, so viewed status persists across uploads
Fix
Implementation uses functional state updaters with proper rollback on network errors — a similar feature in a competitor app is widely reviewed as buggy ("tabs reset, names keep coming back"); ours doesn't
Possibly-deleted detection
Shipped
When someone disappears from both your followers and following lists at the same time, we flag them as "possibly deleted" rather than counting them as a real unfollow
Shipped
21 unit tests covering the heuristic edge cases (empty lists, case sensitivity, multi-account scenarios)
Watchlist + auth hardening
Shipped
Watchlist: monitor specific Instagram accounts and see their status across every audit
Security
Google OAuth + magic-link sign-in flow, both routed through a hardened `/api/auth/callback` with open-redirect protection
Security
Middleware refreshes Supabase sessions on every request and redirects unauthenticated users to `/signin?next=...`
Want to be notified about updates?
Email us — we'll add you to the changelog announcement list.