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.editedonly 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!