Case study · School operations

Booking a 780-seat theatre without the email thread

American International School Chennai. Built, deployed, and in use across the school.
In use

The problem

Booking the school theatre used to be an email thread. Someone asked whether a date was free, the theatre manager checked a calendar that did not show load-in and load-out time, and an answer came back when it came back.

Nothing lived in one place. Double bookings happened. What had actually been agreed, and what equipment had been promised, survived only in whichever inbox still had the thread. When the manager was away, the school had no way to see the state of its own largest room.

The theatre seats 780 and nearly every division uses it: concerts, assemblies, drama, admissions events, commencement rehearsals. A space that contested needs a system rather than a habit.

Four decisions that shaped it

The interesting part of this build was not the code. It was deciding who should be able to see what, who should do which work, and what the system should refuse to do.

Requesters cannot see the calendar

This looks like a limitation and it is deliberate. A raw calendar hides the load-in and load-out either side of an event, so a slot that shows as free often is not. Exposing it would have made the flow feel faster while producing worse bookings. Availability decisions stay with the person who knows what a two-hour concert actually costs in stage time.

The rules live in settings, not in the code

Minimum lead time, venue capacity, the weekly digest schedule, the audience-facing row labels, and whether seat one sits on the audience's left or the performer's left. All of it is editable by the theatre manager, takes effect immediately, and needs no developer. A system the operator cannot tune is a system they depend on someone else for.

The requester lays out their own seating

The person running the event knows which group sits where. Routing that through the manager would have created a bottleneck and lost information on the way. So the requester paints their groups onto a faithful grid of the house, and the printed row-end signs generate themselves and arrive by email. The work moved to the person with the knowledge, and it cost them less than the email thread did.

Every state change is recorded

Approvals, rejections, cancellations, ad-hoc bookings, settings changes, seating finalised. Each one attributed and timestamped. Not because anyone expected disputes, but because a shared resource with no record is where disputes come from.

The hard part of an operations tool is not building it. It is deciding what it should refuse to do.

See it from both sides

The same system, seen by a teacher requesting the space and by the manager running it. Switch roles and move between screens.

Interactive wireframe

The same system seen from both sides. A teacher requests the space and manages their own seating; the theatre manager approves, oversees the calendar, and tunes the rules without touching code. Switch roles to compare.

A working rebuild of the live interface. Every booking shown here is invented: the deployed system carries real staff requests and event details, so none of its data appears on this page.

Any signed-in staff member. Sees only their own bookings. One person, gated by role. Sees everything, and sets the rules.
/exec?view=form/exec?view=my_requests/exec?view=seating/exec?view=dashboard/exec?view=approve/exec?view=bookings_list/exec?view=settings

Request the FAC Theatre

signed in as a staff member

Bookings inside 14 days' notice are arranged directly with the theatre manager. Everything else comes through here.

Spring Concert
Music Department
Music room, Building C
Sat 14 June 2026
6:30 pm to 8:00 pm
Projector and screen4 microphones PodiumSlides / video / sound Risers
House lights dimmed for the second half.

The requester supplies event time only. Load-in and load-out buffers are added by the manager, so the calendar stays truthful.

My requests

+ New request
Spring Concert
Music Dept · Sat 14 Jun, 6:30 pm to 8:00 pm
Tentative
Grade 3 Assembly
Elementary · Thu 6 Jun, 9:00 am to 10:00 am · signs sent
Confirmed Seating →
Math Olympiad
High School · Fri 28 Aug, 1:00 pm to 4:00 pm
Confirmed Seating →
Dance recital
Dance · Sat 5 Apr, 6:00 pm to 8:00 pm
Cancelled

A teacher sees only their own bookings. No calendar browsing, because a raw calendar hides load-in time and reads as available when it is not.

Seating: Spring Concert

PlaceEraseBlockGenerate signs

Placed 32 more seats for Elementary. 96 of 252 done, 156 still to place. Click another seat to continue.

S T A G E
Groups
Band and Choir193
Elementary96 / 252
High School149
Middle School112
Flag bearers59
Staff15
Placed 624 of 780
Remaining 156

Click a seat and it fills contiguously up to the group size, stopping at aisles and row ends. Printed signs generate one per block.

Theatre dashboard

+ New bookingAll bookingsSettings
Pending approval · 2 requests
Spring Concertrequester
Music Dept · Sat 14 Jun, 6:30 pm to 8:00 pm · submitted 12 days ago
Grade 5 Showcasemanager
Elementary · Thu 19 Jun, 9:00 am to 10:30 am · submitted 3 days ago
This week
Mon 25 May · MS Assembly rehearsal 10:00 am
Tue 26 May · today · no events
Wed 27 May · HS Theatre Production, dress 6:00 pm
Thu 28 May · no events
Recent activity
12:32 APPROVED Spring Concert
09:15 SETTINGS_CHANGE manager email
Yesterday CREATE manager ad hoc
Yesterday AUTO_CANCEL ES rehearsal
2 days ago CREATE Grade 5 Showcase
3 days ago SIGNS_SENT
Next week
4 events on the calendar
2 need attention
1 pending approval
1 unfinalised seating

Every state change is written to an audit log. The weekly digest goes out Monday at 08:00.

Review booking request

manager only
Spring Concert
Music Department
Sat 14 Jun, 6:30 pm to 8:00 pm
Music room, Building C
Projector, stage4 micsPodiumSlides / video / sound
House lights dimmed for the second half.
Requester does their ownManager handles it
ApproveReject with reason

Opened from the notification email. The role is checked twice, once on load and again on submit, so a forwarded link cannot approve anything.

All bookings

SearchStatus ▾Seating ▾
Spring Concert
Music · Sat 14 Jun · seating unassigned
Tentative
Grade 3 Assembly
Elementary · Thu 6 Jun · signs sent
Confirmed
HS Theatre Production
High School · Wed 27 May · seating unassigned
Tentative
MS Drama showcase
Middle School · Sat 8 Jun · seating finalised
Confirmed
Commencement rehearsal
Added by the manager · Tue 16 Jun
Confirmed
Dance recital
Dance · Sat 5 Apr
Cancelled

Everything on the calendar from 90 days back to a year ahead, cancellations included, because the record of what was cancelled matters too.

Settings

changes apply immediately

The rules of the system live here, not in the code. Nothing on this page needs a developer.

Space and capacity
FAC Theatre · 780 seats
Minimum lead time
14 daysHow far ahead a teacher must book before the request needs a conversation instead.
Weekly digest
Mondays, 08:00Summary of the week ahead and anything still needing a decision.
Allowed domain
School Workspace domain only
Row labels
Front 1 to 6 · Main 7 to 22Audience-facing labels printed onto the seating signs.
Seat numbering
House leftSeat 1 on the audience's left, or switch to the performer's left.

Handing the settings to the person who runs the space is the difference between a tool they own and a tool they depend on someone else for.

What is not built yet

Amendments and cancellations still go through the manager by email. A requester who needs to move a date replies to the approval email and the manager updates it on her side.

That is a phase boundary rather than an oversight. Approving requests and laying out seating were the two things that actually hurt, so they shipped first and the rest waited. In-app amendments are the next phase. I would rather ship the painful half and say so than hold everything back for a complete version nobody is using yet.

Where else this fits

None of this is really about theatres. Every school has a small number of contested shared resources, and most of them are run on memory, goodwill, and a thread. A gym, a maker space, a bus, a set of iPad carts, a room with the good projector in it.

The pattern transfers unchanged: one source of truth, a named person who can approve, the operating rules owned by the operator rather than buried in code, the work pushed to whoever holds the knowledge, and a record of who decided what. The theatre was simply the version of the problem that was costing the most.

matthewignash.com
An instructional leader who builds systems and develops people, across four countries.