# Post-flow parity — Postflow vs Buffer / Later / Hootsuite / Metricool / Sprout Target: the composer → queue → calendar flow feels like the popular tools on a phone. Sources: Buffer help (scheduling posts, getting started), Later reviews/app listing, Hootsuite Bulk Composer help, Metricool best-time + autolists help, 2026 character-limit guides. Checked = implemented AND verified headless on a Pixel 7 profile (test/smoke.js, 54 checks; screenshots in test/shots). Last pass: 2026-08-23 21:10 CT. ## Composer (Buffer / Hootsuite / Sprout) - [x] C1 Channel selector with avatar badges (platform colour + initial/handle), tap to toggle, selected count - [x] C2 "Customize for each network" — per-channel tabs that override the master text - [x] C3 Per-network character counter (limit per network, amber near limit, red over, worst-case shown in the master tab) - [x] C4 Media with per-network validation (required/optional/video-only, max file size, video-length hint, image count caps) - [x] C5 Multiple images (carousel) — up to 10, per-network cap (X 4, LinkedIn 9, IG/FB 10, Threads 20, TikTok/YouTube 1 video) - [x] C6 Hashtag manager — saved hashtag groups, one-tap insert, hashtag count vs network cap (IG 30, X 2–3 advised) - [x] C7 First comment for Instagram / LinkedIn / Facebook - [x] C8 Alt text on images - [x] C9 Tags / campaign labels on a post (filterable in queue + calendar) - [x] C10 Live preview pane — phone-shaped mock of the post per selected network (avatar, handle, text with "…more" truncation, media) - [x] C11 Link detection — first URL becomes a link card in the preview; LinkedIn/FB/X treat it as link post - [x] C12 Emoji picker (quick row) in the composer - [x] C13 Edit an existing draft/scheduled post (re-open in composer) and Duplicate ## Actions (Buffer's four buttons) - [x] A1 Add to Queue → next available posting slot - [x] A2 Prioritize → first available slot (bump to front) - [x] A3 Schedule → custom date/time with suggested slots (best times) shown as tappable chips - [x] A4 Share Now - [x] A5 Save Draft (never publishes; shows under Drafts) - [x] A6 Default action remembered (last used action becomes the main button) ## Queue & calendar (Buffer / Hootsuite / Sprout) - [x] Q1 Posting schedule per channel-set: time slots per weekday (Settings → Posting schedule; defaults seeded) - [x] Q2 Queue view grouped by day with empty slot placeholders ("+ add to this slot") - [x] Q3 Tabs: Queue · Drafts · Approvals · Sent · Failed, with channel filter chips - [x] Q4 Calendar — week view (7 columns, posts as coloured pills, tap → open) - [x] Q5 Calendar — month view (dots per day, tap a day → its list) - [x] Q6 Reschedule from the queue (move to another slot / pick time) without re-composing - [x] Q7 Shuffle / move up-down in queue order ## Later-style - [x] L1 Visual Instagram grid preview (3-column, scheduled + published, drag order not required on phone: up/down swap) - [x] L2 Best time to post per channel — computed from publish history + platform defaults; surfaced as chips in Schedule - [x] L3 Link in bio — public page /bio/ showing the IG/TikTok grid, each tile → its assigned URL; composer has a "Link in bio URL" field ## Hootsuite-style - [x] H1 Compose with preview pane (see C10) toggleable "Focus mode" - [x] H2 Bulk scheduler — CSV upload (date,time,text,link,media url,channels) with row preview + error rows before scheduling; template download - [x] H3 Approval workflow — "Submit for approval" → Pending; Approve / Reject with note; pending posts never publish ## Metricool-style - [x] M1 Best hours heatmap — 7×24 grid per channel (history + defaults), darker = better - [x] M2 Autolists — named lists of evergreen posts that loop on their own slot schedule (next item auto-scheduled after each publish) ## Verification harness - [x] V1 test/smoke.js covers the new flow on Pixel 7 (mobile UA, touch), screenshots in test/shots ## Pass 3 extras (things the popular tools have that the first list missed) - [x] N1 Internal notes on a post (Buffer Notes) — never published, shown on the card - [x] N2 UTM link tagging (Buffer) — utm_source=&utm_medium=social[&utm_campaign] added to every link at publish - [x] N4 Ideas board (Buffer Create) — capture ideas, "Use" turns one into a post - [x] N7 Post type per channel (Later/Buffer) — Instagram Feed / Reel / Story, YouTube title field - [x] N9 Media library (Later) — reuse anything uploaded before, usage count per file - [x] N10 Hashtag suggestions (Later) — the tags this account uses most, one tap to insert