What to write next

One selection rule decides the next post for both writers: real search volume weighted by winnability, intent and season, gated by the roadmap — with a committed publish date outranking everything.

What it is

A single module answering 'what should be written next', consumed by both the in-process writer and the subscription writer so they can never drift. It distinguishes finished drafts (inventory) from outline stubs (to-dos), prices every candidate on priorityNow, applies the roadmap stage gate to planned work as strictly as to new work, leaves alone any stub that has already failed twice, and breaks ties toward the human-planned angle.

Also called: content queue · blog backlog order · which post first · up next

See it
What to write next
Apr
May
Jun
Jul
Ivy Brubaker — 30×40 Garage
Framing
Ivy Brubaker — Riding Arena
Concrete
Marlin Hoover — 30×40 Garage
Trim
Delia Yoder — Riding Arena
Framing
Marlin Hoover — Hobby Shop
Concrete
Framing crewConcrete crewTrim crew
The 'Up next' strip on the calendar: numbered queue chips with the reasons underneath — 'in season (peaks Mar–Jun) · Stage 1 · unlocked'. Rendered by src/components/platform/blog/ContentCalendar.tsx. Sample data — no customer information appears here.
How it works
  1. 1isStub() classifies a draft as a to-do if it still carries a plan block or is under 350 words.
  2. 2Stubs are matched to the universe by their formal bond, or failing that by their target keyword's name, so they can be priced at all.
  3. 3Fresh keywords are filtered to those not already taken, not already published or ranking, and unlocked at the current stage.
  4. 4Anything already past its scheduled date is finished first, oldest slot first.
  5. 5Otherwise the top stub and the top fresh keyword compete on the same priority number; ties go to the stub.
  6. 6ensureBrief() builds the SERP brief on demand if the winner doesn't have one.
Why we built it

Two failures are recorded in the file. First, the ordering rule: "Stub-first was the original rule and it was wrong here: only 2 of 30 stubs were bonded to a scored keyword, so 28 of them scored zero and would have been written ahead of 8,100/mo terms sitting untouched." Second, the calendar override, quoted in full: "A COMMITTED DATE OUTRANKS A BIGGER KEYWORD (Keith 08-24). Volume decides what to write NEXT; it must not decide whether to honour a date already on the calendar. Before this, it did: a stub scheduled for 20 August sat unwritten while the writer picked fresh high-volume terms three runs in a row, and the publisher held it back six times for being 96 words. The calendar meant nothing because nothing enforced it."

The problem
  • Two writers with their own selection rules would eventually disagree.
  • Outline stubs counted as inventory, so the queue looked permanently full.
  • A date on the calendar was ignored in favour of a bigger keyword, repeatedly.
Sound familiar?
What you get
One rule, so both writing paths always pick the same next post
An overdue slot is honoured before any new topic is opened
A stub that has failed twice stops being retried forever

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →