Apps · Gatehouse

Answer the gate from your pocket

A doorbell is a wire to a box on a wall, and the person who has to answer it is never standing next to that box. So a driver waits at a loading bay, a contractor rings a number that goes to a desk nobody is at, and somebody eventually walks the length of the site to find out who has been standing in the rain. Gatehouse is one button at the gate and a knock on the phone in your pocket — with the app closed.

45s before it widens an unanswered call goes past whoever covers that gate — and by five minutes, to everyone
1 button at the gate no account, no app to install, no typing — a wall tablet or a QR code
never “they were notified” a push is best-effort; this app says what it attempted and nothing more

How a call goes

  1. Somebody presses one thing. Delivery, collection, contractor, visitor. A name if they feel like it. That is the entire interaction at the gate.
  2. Whoever covers that gate is knocked. On a phone, with the tab closed and the app not running.
  3. If nobody goes, it widens. At 45 seconds it reaches beyond the people assigned to that gate; by five minutes it is the whole team. It never rings the same person harder — that is a nuisance, not an escalation.
  4. One person answers, by name. A second person is told who already has it. Two people walking to a gate is wasteful; two people each assuming the other went is the failure.
  5. The panel says who is coming. The person in the rain gets a name and a clock, which is the difference between waiting and wondering.

What this app will not claim

Gatehouse is built on a push to a browser that may be closed, asleep, or have had permission declined. That is a real limit and it does not go away by being quiet about it. So the console reports how many phones were knocked and says, in those words, that whether any of them rang is not something it can see. The gate panel says “we have called somebody” — never “they have been told”.

The header of the console carries one pill: whether this phone will actually be reached. Tapping it is how you fix it. “Gatehouse is installed” and “this phone will ring” are different facts, and only the second one matters at 6am.

Why it did not exist until now

This app was designed, scored 18 out of 30, and was killed — not on its merits but on a missing piece. Every version of it came down to “and then their phone rings”, and nothing on this platform could reach a browser that was closed. It is here because Knock now exists.

Pricing

What it costs

Commercial — per site, per month

A licence per site, checked when the console opens. Without one the gate button still works and the rota still escalates; what stops is the retained log, and every entry it does write is stamped licensed:false.

The one thing a licence does not buy is a promise that somebody's phone rang. A push is handed to the browser's own service, and nothing downstream of that reports back — so the console says sent, never delivered, and the rota keeps widening until a person actually answers.

How it's built

The part that matters, in the open

One call subscribes the phone through the platform's Knock primitive. What comes back says what was attempted — never that anybody was reached.

js/console.js
const res = await this.channel.knockSubscribe({ swPath: 'knock-sw.js' });
this.knockReady = !!res.ok;
this.refreshKnockPill(res);

Taken from this app's source, not written for the page. Built on the Messaging Platform SDK.