TAG carries exactly one message at a time from a parent to a child at school — answered with a single tap. The one-school software pilot is built and tested; the physical e-ink device has a complete pre-prototype hardware design waiting on its first bench build.
Most of what a lock-away policy blocks is exactly what parents never needed anyway. What's left is a handful of genuinely time-sensitive messages a day, with no channel left to send them.
Gran instead of Mum, a different gate, a different time. Small logistics, but they have to land before the final bell.
A dentist appointment, an early collection, a forgotten kit bag — the kind of message that doesn't fit a note sent in with breakfast.
Nothing urgent — just "home safe?" or "did the trip go ahead?" — answered with one tap instead of an unread text three hours later.
Before any physical device, TAG exists today as a working web pilot: a parent app, a school console, a backend and a virtual two-button device you can pair and message in a browser.
NOTICE is a directive — the child acknowledges with GOT IT. QUESTION is a genuine choice, answered YES or NO. There's no pretend choice on a notice.
Holding the left button for three seconds alerts school staff and linked parents independently, each with their own "seen" tracking. Staff resolve it after checking.
Server-enforced checks mean a paired device can only ever reach its own child's messages — not another family's, however many guardians are linked.
Pairing codes are one-use, messages expire after 24 hours, sessions expire after 12. Nothing lingers longer than it needs to.
An automated suite covers access isolation, pairing, expiry and idempotency, plus a full browser smoke test across desktop and mobile layouts.
Docker Compose, PostgreSQL and automatic HTTPS via Caddy. No paid AI service is needed to run the pilot itself.
The device only ever shows the most recent message. There's nothing to scroll, mute, or get lost in — which is the point.
A short message, typed once, marked as a NOTICE or a QUESTION — same as texting, except it's going to a device the school controls, not a phone the school has to confiscate.
It's queued by the backend and delivered to the child's paired device — physical or virtual — or broadcast through the school console to a class or year group.
The e-ink screen updates — checking in roughly every five minutes is enough — and holds that one message until it's answered. Battery life was never the constraint; attention was.
GOT IT, YES or NO — nothing else. The reply goes straight back to the parent's app. Holding the left button three seconds raises a help alert instead, seen by both school and parent.
Distributed by the school, handed back at the gate.
For the walk home, clubs, and everything outside the gates.
Everything needed to take the School model to a bench build lives in the open repo: hierarchical KiCad schematics, a priced UK bill of materials, an 11-page assembly guide, an OpenSCAD enclosure with printable STL parts, and a Blender product render.
No free-text, ever. A child's only possible replies are GOT IT, YES or NO — there's no keyboard for a stranger to exploit.
Guardian access is enforced server-side. A paired device — and the parents linked to it — can only reach its own child's messages.
Passwords are hashed, sessions are signed. HttpOnly cookies, origin and CSRF checks, rate limits and an audit log sit under everything.
School pairings expire themselves. Every link between device and parent app is released at 3pm, no admin required.
Being clear about the edges matters more than a good demo. Nothing here is dressed up as more finished than it is.
In-app only. No SMS, email, push or emergency-service call, and no guaranteed response time. This pilot must not be relied on as a safety-critical system.
Shown honestly. The parent app never claims a message sent while offline actually delivered — a network failure is surfaced, not hidden.
Pre-prototype. No physical unit has been assembled or tested. Firmware doesn't exist yet.
One school at a time. Multi-school tenancy, billing, attendance and timetable integration are outside this pilot.
TAG is an independent build, not a school-issued product yet — the repository below is where it's actually taking shape, commit by commit.
| Backend | Python application server, run under Gunicorn |
| Database | PostgreSQL in production; SQLite for quick local development |
| Deployment | Docker Compose, with Caddy handling automatic HTTPS |
| Parent app | Installable PWA with an offline fallback — no child data cached client-side |
| Testing | Python unit tests plus a Playwright browser smoke test across desktop and mobile |
| Hardware source | KiCad schematics, OpenSCAD enclosure, Blender render — all versioned alongside the code |
| Repository | github.com/andykirkpublic-cmd/TAG |
| Target deployment | tag.trykobi.com |