IG SaveSort
Instagram lets you save posts into collections.
IG SaveSort lets you organize them.
If your saves have gotten out of hand, IG SaveSort was made for you.
Extension
Note: Chrome extension also works on Edge, Brave, Arc, and other Chromium browsers.
Note: IG SaveSort installs on desktop Chrome, Edge, Brave, Arc, or Firefox. It isn’t available in phone browsers.
Free for your first 25 moves
Built for real use cases
- Need to consolidate two overlapping collections into one? Merge them in one swoop.
- 200 posts dumped into one giant generic collection? Start sorting.
- Can’t remember what save lives where? Compare two collections side by side.
How it works
- Open your “Saved” page on Instagram and turn on Selection mode from the extension icon in your toolbar.
- Select two desired collections and hit the “Compare” button that displays. The collections open side by side.
- Drag a post across, or switch to Bulk Move mode to select several and move them at once. Undo is one click, if you change your mind.
Pricing
Your first 25 moves are free. Unlimited lifetime moves are €7.99. No subscription, no account.
Privacy
IG SaveSort has no servers and no analytics. This extension runs in your browser using your existing Instagram session, and your settings and usage stay on your device.
The only outside request is a lifetime-license confirmation with Gumroad, and that only occurs if and when you’ve purchased unlimited moves.
IG SaveSort is an independent tool, not affiliated with Instagram or Meta.
Questions or a bug? Email me here - happy to help!
Build Notes
Scope
Solo Build: Product, Interaction Design, Code, Icon & Store art, Chrome and Firefox store releases, and pricing. Built with AI as a coding partner (more below). Initial Build: March 2026
The gap
Instagram allows you to save posts into collections, but reorganizing them at any time means opening each post and altering its collections one at a time. Once a collection passes a few dozen posts, that sorting rarely happens due to the inherent friction, so saves pile up in the wrong collection, or in no collection at all.
The constraint
I checked official routes first: Instagram’s public API doesn’t cover saved collections at all. Everything IG SaveSort does has to work through the same web app Instagram serves to your browser, which is obfuscated and changes without notice.
My first experiment with this tool loaded saved posts by reading them off of a collection’s page, and it failed: Instagram only keeps saved posts nearest the viewport at any time, so collections with more than a few posts came back incomplete. I shifted to the same paginated request Instagram uses to load a collection, which returns every post regardless of scroll position.
How I worked (Design + AI)
I initially designed IG SaveSort in Figma, and built it with Claude as a pair programmer.
I owned the product: what it should do, how it behaves, what to cut, pricing, and every release. I worked with Claude to uncover technical feasibility within Instagram’s code and network traffic, testing which signals were stable enough to build on. Some interface pieces I designed in Figma first; others we worked out together in code.
Habits that keep this sustainable:
- I work on one change at a time across both browser builds, because on a surface that shifts without notice, batching changes makes failures impossible to trace.
- I verify before trusting: the endpoint fix within the “Built to break well” ↓ section came from capturing Instagram’s own traffic changes (not from an assumption or suggestion).
Key design decisions
- Compare, rather than tag. True sorting is a two-pile problem (this belongs here, not there). Putting two collections side by side turns a move into a single drag instead of the default sequencing of menus that Instagram requires.
- Off by default. The extension changes nothing on Instagram until you toggle Selection mode on, and turning it off restores Instagram UX exactly as it was. A tool that sits on top of someone else’s product should never get in that product’s way.
- Undo, rather than Confirm. Every move displays a short undo window instead of an “Are you sure?” dialog. Confirmations slow down the high percentage of moves that are right; undo only costs time on the ones that aren’t. A bulk undo reverses the full batch.
- One mode, one gesture. In Bulk Move mode, the drag interaction is switched off in favor of quick and careful selection.
- Say what isn’t possible. Instagram’s automatic collections (“All Posts” and “Audio”) can’t be edited without un-saving posts entirely, so IG SaveSort flags them as unsupported the moment you attempt to select one, rather than allowing a Compare action to fail later. A failed sorting move displays “Try again” on the post itself instead of failing silently.
- Bulk came from use. Single Move capability shipped first. Bulk Move mode and the necessary toggle/interaction shift followed in 0.2.0, after using it on large collections exposed where the single-move loop stops scaling.
Built to break well
Building on an unofficial surface (which inherits dependencies from an ever-changing official parent by default) means it will absolutely break, and that reality needs to be considered from the start. What matters is how quickly it recovers, and that nothing is lost in the meantime.
In September 2026, save sorting actions began failing with “Try again” at every attempt. Loading and displaying collections still worked perfectly, and the failed requests returned 404s rather than API errors. That pointed to a retired endpoint, rather than a bug in my code: Instagram had moved collection edits from REST to GraphQL.
I captured Instagram's own traffic while moving posts through its native save menu, and found the two mutations that replaced the REST endpoint. One trap: the mutation that removes a post from a single collection and the one that un-saves it entirely are near-identical in shape, differing mainly in payload. Calling the wrong one would have destroyed the user's save rather than relocating it.
Three decisions came out of the fix:
- Add first, then remove, and only remove if the add succeeds. A failed move can leave a post in both collections, but never in neither.
- Post IDs are too large for JavaScript numbers and were being silently rounded. They’re now read as strings.
- Instagram’s mutation IDs live in one place, so the next change on Instagram’s side is a two-line fix.
This shipped as v0.2.2 on both stores, and follow-up versions have continued to improve the tool.
Version history
- v0.1.0Single Move and Compare view, Chrome launch
- v0.2.0Bulk Move, Firefox launch
- v0.2.1Free tier raised from 10 to 25 moves
- v0.2.2Moves rebuilt after Instagram retired its edit endpoint
- v0.3.0Recovery for inactive tabs, unsupported collections flagged
- v0.3.1Firefox host permission gate added to
compare.js(Chrome skipping to 0.3.2) - v0.3.2Clarified new error messages; auto-recovers when IG Saved page is asleep or not fully loaded
One codebase ships to both stores. Firefox review required an explicit data-collection declaration and reviewer notes covering the unofficial API use.
Pricing model
IG SaveSort is a €7.99 one-time license, not a subscription. It’s a utility that people most likely reach for in bursts (a large cleanup, then occasional tidying), not a daily tool, and a monthly fee would charge them for time that they don’t use it.
Paywall after value, not before. The free allowance was raised from 10 moves to 25 in 0.2.1, because the limit was landing before people really had a chance to feel this tool out. Bulk Move also fills the remaining free allowance rather than blocking the batch, so the upgrade prompt never lands early.
Outcomes
Over 100 users (as of Oct 2026) from store search alone, before any marketing. Will update this and all Build Notes sections as the extension evolves.
What’s next
Exploring, for license holders: searching a collection by caption, and re-sorting by date saved. Both work with data IG SaveSort already loads.
Stack
Figma · HTML · CSS · JavaScript (no framework) · Manifest V3
Instagram GraphQL (unofficial) · Gumroad license API · Chrome Web Store · Firefox Add-ons