// PublicWorX · live · 2026
Instagram lets you save posts. It gives you nothing to do with them afterward.
The problem
Saved collections on Instagram are a black box: no summaries, no notes, no search, and no record of what you’ve already looked into. Save a few hundred tutorials and tools and you own a pile, not a list.
What it does
IG Collections turns the pile into a working todo list. It calls Instagram’s internal mobile API with my session cookies and paginates through every saved post. A 50-page guard and loop detection keep a sync from running away. Each post is then enriched by a self-hosted ScrapeGraphAI service running Claude Haiku 4.5, which extracts a structured record: a 2-3 sentence summary, every referenced link, hashtags, and a content type. If enrichment fails, the post falls back to its raw caption instead of disappearing.
On top sits a Filament v4 admin panel (global search, filters by collection and done-state, notes, mark-done, re-scrape) plus an auth-gated mobile triage queue that installs as a PWA. Subscribed collections auto-resync on a nightly cron: jittered dispatch, randomized 3-8s fetch delays, and a hard block (401, 429, or a challenge) disables auto-sync instead of retrying into a ban.
- Laravel 13
- Filament v4
- Livewire 3
- ScrapeGraphAI
- Claude Haiku 4.5
- SQLite
Receipts
- Live: igcollect.randomsynergy.xyz. The public landing page was serving 96 pending items, last synced 11 hours earlier, when I verified it on 2026-07-10.
- Pipeline: idempotent queued jobs on Laravel’s database queue, split across separate sync and enrich queues.
- Thumbnails: downloaded and stored locally at sync time (Instagram’s CDN URLs expire within days) with a daily backfill command that self-heals missing images.
- Secrets: IG cookies stored encrypted in the database, never in .env, and sanitized out of logs.
- Tests: 25 PHPUnit cases and a documented 3-loop hardening audit.
- Infra: Docker on the DarkTower host via Portainer, SQLite single-file database, one-command deploy script.
Outcome
A single-user personal tool by design. I started it on 2026-05-08 and had the working collection endpoint reverse-engineered a day later by probing 4 candidates. It’s live in production and actively syncing. Every post I save now lands in a queue I can actually work through.
Links: Try it →
