Proposal · Create / Scheduler split
PROPOSAL, not shipped. Eight requested UX changes: what each costs, the one that restructures the product, and what still needs deciding.
docs/plans/2026-09-29-create-scheduler-split.md
Eight requested changes. Four are renames, two need sharpening before anyone can build them, and one is a real restructure that the other seven hang off.
Written to be argued with, not to be implemented as-is.
Today
Everything happens in one modal. The Media Library exists as an upload endpoint and storage; the browse/re-attach screen is still unbuilt (F-033).
Proposed
One workspace where work is made, one where it is timed. Nothing crosses the line unapproved.
The eight, grouped
Renames — safe, do first
| # | Change | Cost | Catch |
|---|---|---|---|
| 1 | Side menu colour | ~30 min | CSS token only |
| 4 | Script → User Brief | ~10 min | Change the label. The post.script field name reaches contracts, API, DB, video render and calendar import — renaming that is a migration for no user-visible gain |
| 6 | Size → Ratios | ~2 h | Show 9:16, keep pixels underneath — the ad creative pipeline needs story_1080x1920 to render |
| 8 | Calendar → Scheduler | ~1 h | Label + route, with /calendar kept as a redirect so old links survive |
The restructure
#7 — Media Library becomes the creation workspace; approved work moves to the Scheduler.
Two problems with it as written.
The screen does not exist. F-033 ships the upload endpoint, MinIO storage and the
GET /uploads/:key gateway. The library UI — browse, re-attach, manage — is still 🔲. This
proposal makes an unbuilt screen the centre of the product.
The name stops being true. If briefs are written there, copy is drafted there and approvals happen there, it is not a media library — it is a content workspace, and calling it one will mislead exactly the way two screens called Approvals did.
Recommendation: name it Create. The media library becomes a tab inside it, next to Brief, Copy and Approve. That keeps every word honest and leaves the asset browser as one buildable piece rather than a prerequisite for everything.
Needs a decision before it can be built
#2 — a dynamic journey when posting to more than one platform.
Today one post carries one variant per channel, edited together. "Dynamic" could mean:
- (a) a step per channel — Instagram, then LinkedIn, then Facebook
- (b) one shared draft, then a per-channel review pass
- (c) the composer only shows fields the chosen channels actually support
(c) is the smallest and probably what is meant — it is also the one that prevents mistakes rather than adding clicks.
#3 — "idiot proof."
A goal, not a task. It becomes buildable as a list of places people actually get stuck. Three found this week, for the shape of it:
- two screens called Approvals, meaning different things
- running the Drafter and expecting drafts — approving is what creates them
- a run stuck in
queuedforever because nothing retries a failed dispatch
#5 — Create content → Create Copy → Approve.
Three steps in one screen, or three screens? Today it is one modal. Three screens means a wizard, which is more clicks for an expert and fewer mistakes for a newcomer. Worth choosing deliberately.
Order
Renames first because they are free and visible. The Media Library before the split because the split has nowhere to live without it.
Open questions
- Create or keep the name Media Library? (Recommendation: Create.)
- #2 — (a), (b) or (c)?
- #5 — one screen with three stages, or three screens?
- Does the Scheduler's "new post" open the Create flow, or a quick composer that skips it?