Interrupting someone is a decision, not a default. Four lanes, and a rule for choosing between them. A message arrives quietly. Ariadne finishing waits to be noticed. A child in trouble stops everything. Nothing else earns a popup at all. Vier Stufen, klare Regeln, kein Lärm.
Where: Osaka, JP · 22:14 local · She chose: “I don’t feel safe” · Coordinator: Petra Kaiser · calling now
Every event is assigned a lane before it is built. The lane decides the shape, the sound, whether it can be missed, and whether quiet hours apply. If nobody can name the lane, the event does not get a popup.
Appears in the notification list and nowhere else. No toast, no badge, no sound.
A count on the bell and the rail. Noticed when you look, never pushed into your face.
Slides in bottom-right, auto-dismisses after 6s, never covers a control. Missing it is safe.
Centre of screen, scrim behind, cannot be dismissed without an answer. Ignores quiet hours.
Bottom-right, 380px wide, 12px apart, newest on top. Same anatomy every time: a mark or avatar, one line of what happened, one line of who or when, and at most two actions.
Specimens, not live events — the anatomy to check a real popup against. Every control here acts on the specimen and nothing else: nothing is sent, confirmed or uploaded from this page.
“Is Thursday still 16:40? And who is driving?”
Reply opens a composer inside the toast — answering a quick question should not mean losing the page you are on.
A finished run is L1 by default — it becomes a toast only if you are still on the page you started it from. Waiting work never nags.
Success is inverted black and leaves after 6s. A failure is white, stays until dismissed, and names the real reason.
Beyond three, older toasts collapse into a single pill rather than marching up the screen. Two events from the same person merge into one.
Reserved for a person in trouble. It takes the centre of the screen, dims what is behind it, and cannot be closed without choosing — because “dismiss” is not an answer when a child pressed a help button.
Three channels, because a browser tab is not a promise. The email copy is written to the safeguarding log whether anyone reads it or not.
Never on first load. We ask in the moment the permission would help, in our own words first — so a browser dialog is only ever seen by someone who already said yes.
Your window, in your timezone. Routine lanes are held until morning; the three that could cost somebody their safety are not — and a student is never held at all.
Quiet hours follow your timezone, not the student’s. A coordinator in Munich is not woken by a Tokyo afternoon.
Kept for this browser while the console has no account to save to.
| Event | Lane | During quiet hours |
|---|---|---|
| Help button pressed | L3 | Always through |
| Safeguarding escalation | L3 | Always through |
| Student unaccounted for | L3 | Always through |
| Message from a family | L2 | Held until 07:00 |
| Ariadne finished a run | L1 | Badge only |
| Document expires in 4 days | L1 | Badge only |
Every lane lands in the same list, so nothing is only ever a popup. Grouped by what needs doing, not by time — and a missed toast is never lost work.
The bell in the top bar reads the same feed — this page is where the rules that put things in it live.