Instagram is the storefront. Nothing was built for it.
The brand was managing Instagram across posts, reels, carousels, ads, stories and collabs with a stack of native tools: Meta Business Suite for one thing, a third-party scheduler for another, Google Sheets for SLA tracking, and a Telegram group for crisis comments. Comments were missed. Sentiment was guessed at. There was no source of truth.
One platform, one inbox, one feed.
Meta webhooks push every comment, mention, and DM into a Node ingestion layer the moment it happens. Token threading and automatic media refresh handle Meta's quirks. PostgreSQL stores the canonical event log; SSE pushes updates to the frontend so the inbox feels live, not polled.
- Real-time comment pipeline via Meta webhooks with full error-recovery and replay.
- GPT-4o-mini sentiment scoring per comment: positive, negative, crisis, spam, question — flowing into weekly and monthly trend dashboards.
- SLA-tracked inbox with unanswered detection, keyboard shortcuts, reply workflows, and SSE-powered live updates.
- Setup & Webhook Log viewer for live payload debugging with full event history.
A side-quest that became a moat.
Building igdesk solo meant constantly hitting context-window walls in AI coding sessions. So I built graphify: a codebase knowledge graph that produces semantic subgraphs of just the relevant code for the task at hand. It gets injected into AI coding sessions — cutting token usage by roughly 75%.
Boring stack, sharp execution.
Stack chosen for reliability and ownership, not novelty. AWS EC2 Tokyo. Caddy for automatic HTTPS. Cloudflare DNS. systemd for service management. Daily Postgres backups.
From three tools to none.
The social team works inside igdesk now. No tab-switching, no SLA spreadsheet, no missed crisis comment. Sentiment trends show up where they're useful: in monthly content reviews. The team replies faster, because the inbox is built for replying, not browsing.