Boutique AI Studio All projects

Andermatt · 46.6395 N, 8.5910 E · 1'436 – 2'300 m

Alpine WeekendSchedule

A three-day retreat in the Swiss Alps run by two brands at once, across five hotels, a glacier and a mountain at 2'300 m. Every guest holds a different ticket and sees a different weekend. This is the app that told each of them where to stand, and when.

sanctum-alpine-weekend.vercel.app
Built in
1 day
Programme
14 sessions
Ticket types
5
Page weight
68 kB
1'436 m
THE BRIEF

Two programmes, one weekend, and nobody sure where to be

SANCTUM ran the rituals. THE UNIT ran the movement sessions. Guests bought one of five different tickets, and each ticket bought a different subset of the weekend.

A SUMMIT guest spent Saturday morning on the Rhône Glacier. An ASCENT guest spent it at 2'300 m on the Gütsch. A sponsor's guest came for one day and none of the rituals. The printed brochure showed all of it to all of them, and the locations in it were already wrong by the time the first guest arrived.

The brief was not a booking system. It was a single link that answers one question for one person: what am I doing next, and where do I stand?

1'700 m
THE SCREENS

Six screens, no login, no app store

Guests were handed one URL. First visit asks a single question, then the weekend appears, filtered to their ticket and defaulting to today.

The ticket picker, asking which of five tickets the guest holds
One questionNo account, no password, no email. Pick a ticket and the weekend resolves around it.
The Friday schedule showing SANCTUM and THE UNIT sessions
Blue is ours, white is theirsColour carries the brand split, so nobody has to read a label to know whose session it is.
Saturday showing the mountain temperature on the RISE UNIT card
Live weather at altitudeThe corner reads the MeteoSwiss station in the village. The mountain session carries its own number.
Session detail with meeting point, directions, mountain conditions and kit list
Everything a guest needsMeeting point, one-tap directions, conditions at 2'300 m, and exactly what to bring.
A sponsor guest sees only Saturday, with the other days locked
Only your weekendA sponsor's guest came for one day. Friday and Sunday are closed to them, and say so.
The SUMMIT track showing the glacier transfer instead of the mountain session
Two tracks, one SaturdayThe glacier group never sees the mountain session they cannot attend, and the reverse.
2'000 m
WHAT IT DOES

Built for a guest standing outside in the rain

Ticket-aware programme

Five ticket types, each with its own days, its own Saturday track and its own access to the rituals. A guest is never shown a session they cannot attend.

Directions to the exact door

Every session opens Google Maps at its own pin. Two sessions in the same hotel three hours apart point at two different entrances, 150 m apart, because that is the difference between arriving and wandering.

Live MeteoSwiss data

The current temperature comes from the SwissMetNet station in the village, not a forecast model. The model ran three degrees warm. The mountain session reads the station at 2'288 m instead.

Altitude-aware kit lists

The village can be 17° while the session at 2'300 m is 8°. Each card carries the temperature where the session actually happens, next to the layers you need for it.

Updated mid-event

A session moved indoors, changed concept, changed hotel and changed room over the course of one afternoon. Each change was live in under a minute, with no app update and nothing for a guest to reinstall.

Works on a mountain

Static files, 68 kB gzipped, no backend to time out. Animation never gates visibility, so a page that loads in a backgrounded tab still shows the schedule when the guest comes back to it.

2'300 m
HOW IT IS MADE

Small enough to change during the event

The first build had sign-ups, a database and live capacity counts. Once the real numbers came in it was clear the sharper tool was a schedule nobody has to operate. Cutting the backend halved the page weight and removed every failure mode that mattered on a mountain.

Vite React 19 TypeScript Tailwind v4 Vercel MeteoSwiss SwissMetNet + ICON-CH2 Google Maps place + coordinate pins

Brief agreed. Schedule and locations pulled from the organiser's email thread.

First working version, reviewed on a phone.

Live on Vercel. Ticket filtering, maps and weather in.

Organiser moves a session indoors and to another hotel. Live in 40 seconds.

Room changes again. New pin, new meeting point, live before the session started.