← Furrell private beta

Onsite

Where am I working tomorrow — and is the room still mine?

When organisations merge, their buildings merge with them. Overnight, several hundred people need to know which building they are in, which room they have, and whether it is still theirs next Tuesday. That knowledge usually lives in one spreadsheet, maintained by one person, that nobody else dares open.

Onsite is that spreadsheet replaced properly — and built as a product rather than another internal tool. Every organisation defines its own buildings, rooms, sessions and job titles, sets itself up without anybody's help, and can never see another organisation's data.

Three screens carry almost all of the work: the board for today, the shifts nobody has picked up yet, and the settings that let an admin change how the place runs without asking a developer.

About what you are seeing. These are working reconstructions of the real interface, running here in the page. Every building, name, role and date below is invented.
One

Today

The screen most people only ever need. It opens on wherever you usually work, so most staff never touch the building chips at all — and your own booking is the one that stands out.

Demonstration · invented data — try the buildings

Two

Shifts

An admin publishes what needs covering; whoever is eligible claims it; somebody approves. The part that usually goes missing is what happens when a person keeps pulling out after being confirmed — so that is measured, and it appears at the moment somebody is deciding, not in a report nobody runs.

Demonstration · invented data — try approving the first one

Three

What the database refuses

Rules with no exceptions belong in the database, where nothing can get past them. Rules with exceptions belong in the screen, where they can explain themselves and let a person decide. Telling those two apart is most of the design.

The constraint on the left is real, and it is in the schema

Underneath

Four decisions worth the trouble.

Who can see what

Separation between organisations is a row-level security policy in Postgres, not a filter somebody has to remember to write. A screen with a bug in it returns nothing, rather than returning somebody else's rota.

Nothing is ever deleted

Rooms retire, people deactivate, bookings cancel. Last March's rota still points at every one of them, which is exactly what you want when somebody asks where a session was held.

Repeats are real rows

“Every Tuesday” is written out as actual bookings in advance rather than worked out on the fly. Changing one Tuesday because somebody is on leave becomes editing one row — instead of the hardest bug in every rota system ever written.

Where the data lives

UK region, fixed when the project was created. It is the first question on every security questionnaire, and the only answer on this list that cannot be changed afterwards.

Work with Furrell

Onsite is in private beta.

If you run a multi-site team with the same problem, I would like to hear how yours works.

hello@furrell.com
© 2026 Furrell · West Yorkshire All figures and names shown in demonstrations are invented.