Free · Craft CMS 5
Two people in one entry. Somebody gets asked before they save.
Craft already knows when a colleague has the same entry open — it shows a 26px avatar in the corner and nothing else. Nothing stands between the save button and the save, slideouts get no conflict signal at all, your own second tab is invisible, and the record is deleted after sixty seconds. Stop Sign fills exactly those gaps, and leaves Craft's avatars where they are.
Impossible to miss, and in the way at the right moment
The banner names who else is in the entry and whether they have typed. Click Save while they are there and Stop Sign asks first — with a fresh check, not the banner's ten-second-old state, and in the same words, so nobody learns to ignore one of them.
Screenshots from a live install, not mockups.
Features
Every surface reads from one verdict, built on the server — the banner, the guard, the lock and the history can never disagree with each other.
A banner that names names
Red when somebody else has typed, amber when they only have it open, blue when it is your own other tab. Updated every ten seconds from a heartbeat that is one upsert and one indexed read.
A question before the save
Craft has no guard at all between the save button and the save. Stop Sign checks again at the moment of saving — on full-page editors, in slideouts and on ⌘S — and records whether the author went back or saved anyway.
Changed underneath you
If the entry was saved while you had it open, you are told who saved it and when — including in slideouts, where Craft's own reload prompt never appears. Your own save never trips it.
Your own second tab
Craft's activity check always excludes the current user, so two of your own windows can overwrite each other silently. Stop Sign keys presence per tab and warns you like anybody else.
Soft locks, off by default
Per section or everywhere. The second editor opens read-only through Craft's own permission check. A lock always expires, can always be taken over by someone who could edit the entry, and is settled by a unique index rather than a race.
A history that outlives the entry
Every collision with what each person chose, so you can tell whether the warning is still being read or has become wallpaper. Kept after the entry is deleted, pruned on a schedule you set.
Fails open, everywhere
A collision warning is a courtesy; an outage is not. Every lock check, guard and badge is wrapped so that a failure lets the author through, and nothing ever runs for a visitor.
Stop Sign endpoint unreachable → the save goes through
Lock check throws → the save goes through
resave/entries, queue jobs → never locked
Visitor's front-end form → never locked
Open editor left all weekend → session still expires (dontExtendSession)
Front-end assets → none
Outbound requests → none
Runtime dependencies → none
Frequently Asked Questions
The questions that come up before putting something between an editor and the save button.
Yes. One edition, everything switched on, no licence key.
Partly. Since 4.5 an open editor polls Craft's activity table every fifteen seconds and shows small avatars. There is no loud warning, nothing between the save button and the save, no staleness prompt in slideouts, no awareness of your own second tab, no badge before you open the entry and no history — the table is emptied every sixty seconds. Stop Sign adds those and leaves the avatars alone.
Snitch did the same job for Craft 3 and had 85,000 installs, but has not had a release since December 2020 and never reached Craft 4 or 5. Stop Sign is not a port — it is built for Craft 5's element editor, provisional drafts and slideouts.
Stop Sign warns, and locking is an option that is off by default. When you turn it on, a lock always expires, is always recorded, and can always be taken over by somebody who could edit the entry.
No. Console commands, queue jobs and visitors' front-end requests are never refused.
Saving goes through. A plugin that makes saving impossible when its own endpoint is unreachable is a worse outage than the collision it was trying to prevent.
Four small tables: who had what open, who holds which lock, who last saved each element, and the collision history. No content, no visitor data, no IP addresses, and no outbound requests.
One request per open editor every ten seconds — one upsert and one indexed read. Index badges add a single query per page. Nothing runs on the front end.
Install it before the next lost afternoon
Free, no editions, no licence key, no configuration. Install it and the next time two people open the same entry, both of them find out.