Launch board for everything queued to go live in Contentful

By General Input

See every upcoming content release on one six week calendar, check each entry is actually ready, and ship it live without leaving the page.

Integrations

  • Contentful
  • Slack Bot

Type

App

Categories

  • Marketing
  • Operations

I want an app my content team works out of as the single launch board for everything queued to go live in Contentful. It should replace the spreadsheet and Slack threads we use today to track what is shipping when, and it should be trustworthy enough that an editor can schedule, reschedule and ship real content directly from it.

Space and environment. The board defaults to the master environment. Put an environment picker in the header populated with List Environments, so the team can switch to a staging or feature environment and have every view on the page refetch against it. Remember the last chosen environment per user so people land back where they were working.

Main surface: a six week calendar. Use List Releases for every upcoming release and List Scheduled Actions for every scheduled publish, then lay them out across six weeks starting from the current week. Each day cell shows the releases landing that day and any individually scheduled entry publishes. A release chip shows its title, how many entries it contains, and a readiness colour: green when the last launch check found no blocking problems, red when it did, grey when it has never been checked.

Release detail: a per release checklist. Clicking a release opens a panel built from Get Release for the release itself and List Entries to hydrate the entries inside it. List every entry as a checklist row showing its title, content type, current publish state, scheduled time if it has one, and its readiness status from the most recent launch check. Show the specific findings inline on each row, for example 'meta description is 184 characters' or 'links to an unpublished author entry', so an editor can see what to fix without opening Contentful. Also surface List Release Actions in the panel so the team can see whether a previous publish attempt on this release succeeded or failed.

Scheduling controls. From a row or a release I can reschedule a publish, which creates a scheduled action at the new time with Create Scheduled Action and cancels the old one with Cancel Scheduled Action, and I can cancel a scheduled publish outright with Cancel Scheduled Action. Dragging a release or scheduled item to a different day on the calendar should do the same reschedule, with a confirmation step before anything is written.

Shipping controls. A 'Push release live' button on the release panel ships the whole release with Create Publish Bulk Action, and a 'Publish now' button on any single row ships that one entry with Publish Entry. Bulk actions are asynchronous, so poll Get Bulk Action after kicking one off and show live progress and the final result on the panel rather than pretending it finished instantly.

Run launch check: a background agent. Every release has a 'Run launch check' button that kicks off a background agent scoped to that release. The agent reads each entry in the release with Get Entry and checks it against the field definitions from List Content Types, then flags required fields that are empty, SEO titles over 60 characters, meta descriptions over 160 characters, references that point at entries which are still drafts or archived (walk the links with Get Entry References), and linked assets that have never been processed or have no file for the locale (check with Get Asset). Where copy is simply missing, the agent drafts it and saves it back into the entry as a draft with Create or Update Entry with ID, matching the voice of the existing copy on that entry.

The agent never publishes anything on its own. This is the most important rule in the app. It only reads, drafts fixes into draft entries, and reports findings for a human to approve. Publishing is always a person pressing a button on the board. Do not give the agent the publish or bulk publish actions at all.

When the agent finishes it writes a readiness verdict back into the app: a per entry pass or fail with the list of findings, plus a rolled up verdict for the release. That is what turns each checklist row and each calendar chip red or green. Store each verdict with the time of the check and who kicked it off, and show 'last checked' on the release so nobody trusts a stale verdict. Show the agent's progress in the panel while it runs.

Go live announcements. When a release ships, post a go live announcement to a Slack channel with Slack Bot using Send a Message. Let the person choose the channel from a picker populated by List Channels, and remember the default channel for the team. The message should name the release, list the entries that went live with links, and say who shipped it.

Version conflicts. Contentful writes use optimistic locking, so every update and publish must send the entry's current version in the X-Contentful-Version header. Always read the entry immediately before writing so the version is fresh, and when Contentful returns a 409 version conflict do not retry blindly and do not overwrite. Surface it on the row as 'someone else changed this entry, reload to see their version' and let the editor decide. The same rule applies to the agent's drafted fixes: on a conflict it reports the finding instead of writing.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them