Generating a week of posts takes seconds. Deciding when each one goes out is the part that takes judgement, and we spent a long time treating it as a field on a draft.

The easy part finished first

Once generation worked, the bottleneck moved immediately and completely. Teams had more drafts than they had good slots to put them in, and the product had nothing useful to say about which slot was good.

A date picker on a draft is not a scheduling feature. It is a way to record a decision the product did not help you make.

What makes a slot good

Almost none of it is about the post. It is about everything else happening that week.

  • What else is already scheduled on that channel, and how close
  • Whether a campaign, launch or announcement owns that window
  • Holidays and dead zones per market, which differ per channel
  • What another team is planning that you cannot see from inside your own module

Rebuilding around the calendar

We moved scheduling out of the draft and into the calendar, which is the only surface that can see the whole week. Slots are per channel, drafts are dragged onto them, and collisions are surfaced at the moment you create them rather than after publishing.

The calendar also became the place where conflicts between teams surface, which was not a goal but turned out to be the most used part.

Still unsolved

We do not have a good answer for optimal timing, and we are suspicious of products that claim to. The signal is weak, it decays, and it varies more by audience than by hour. We show you what you have and where it collides. That is honest, and it is less than we would like.

We use cookies

We use strictly necessary cookies to run the site, and optional cookies to understand usage and measure marketing. You can change your choice at any time. Cookie policy