Post locking to prevent multiple staff editing the same post

Hi everyone,

I’m looking for guidance on implementing a post lock / unlock mechanism in Ghost to prevent two staff members from editing the same post simultaneously.

Background

Currently, Ghost allows:

  • Staff A opens and edits a post

  • Staff B opens and edits the same post

  • Staff B saves successfully

  • Staff A later gets an error when saving

This causes confusion and bugs for editorial workflows.

Goal

I’d like to achieve the following behavior:

  • When Staff A opens a post, it becomes locked

  • If Staff B opens the same post, show a popup like:

    “This post is currently being edited by Staff A”

  • Only one staff member can edit/save a post at a time

  • The lock is released on save, exit, or via a timeout

Challenge

  • Webhooks such as post.edited only fire on save, not when a post is opened

  • There is no event or webhook for post access / editor open

  • This makes it difficult to:

    • Lock a post early

    • Notify the second editor before they start editing

Previous approach

I previously solved this by customizing the Ghost core (plus additional tables for lock tracking).

However:

  • I’ve migrated to Ghost Docker

  • Official Docker images don’t support custom core changes

  • Migrating a custom core into Docker is not practical

Question

Is there a recommended or supported approach to implement post locking and editor conflict prevention in Ghost without modifying the core, given the current webhook limitations?

Any advice or direction would be very helpful. Thanks!