Mountain Operations Console for a Georgian Ski Resort
Designed and built a clickable operations console for a mid-size ski resort in Gudauri, Georgia: live lift status with wind readings against each lift's own thresholds, signed opening checks before any lift opens, and a ski patrol incident log with restricted casualty details and 112 escalation - while every safety decision stays with the lift supervisor or patrol.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, lift board with quick view, lift detail with 5 tabs, the patrol incident log and incident detail with casualties, witnesses and 112 escalation.
Brakes, emergency drive, communication, line ride, safety devices and rescue kit. A lift cannot be set to open until its supervisor signs the list - try Mtsvane Chair, at 3 of 6.
Each lift has its own hold and close wind threshold (client policy). Readings above them turn the card amber and name the lift supervisor as the decision maker; the system never changes a lift's status itself.
24 pistes over 59.7 km, 18 patrol incidents, 5 lift evacuation records, 12 staff users and 3 roles to view the console as.
Tovliani ran its mountain on radio calls, a whiteboard in the lift office and a ticketing system that knew nothing about the rest. When a lift went on wind hold, the website still showed it open for an hour and guests queued at a closed lift. Patrol wrote incidents on paper forms that were typed up days later, so nobody could say which runs produced the most injuries.
Chairlift gives Tovliani's lift supervisors, ski patrol and mountain operations one console: live status of every lift with its wind readings and thresholds, status changes that only the lift's own supervisors can make and that are logged with who, when and why, signed daily opening checks, and a patrol incident log from first report to approved report.
A ski resort is a set of safety decisions made by named people: lift supervisors open, hold and close lifts, and ski patrol opens and closes terrain. Software can record and publish those decisions, but it must never make one.
Wind holds were called over the radio and the website showed the lift open for an hour after it stopped. Each lift has its own hold and close thresholds, set by the client, and only its supervisor decides when to act on them.
Common European practice expects a named person responsible for each lift, daily checks before opening and documented evacuation plans. The checks were signed on paper, with no link to whether the lift was actually open.
Patrol recorded incidents on paper forms. Casualty details are health data under Georgia's Law on Personal Data Protection, so they need role-limited access and a log of every view, and serious cases go to the state emergency services through 112.
Fourteen lifts, sixty kilometres of pistes, a ski school and a rental shop, with lift supervisors, patrol, grooming, snowmaking, ticketing and revenue staff each owning part of the day and needing to see the rest.
Mapped 15 roles, 47 screens (35 staff and 12 guest) and the data model for lifts, append-only status changes, opening checks, wind readings, pistes, avalanche closures, grooming, snowmaking, incidents, casualties, evacuations, passes, gates and rentals. Wrote down the rules the design follows: Georgia's Law on Personal Data Protection, European practice for lift operation, patrol-only avalanche releases, 112 escalation, the FIS rules for skier conduct and ISO 11088 for rental bindings.
Built 5 key screens on a production dashboard kit: the dashboard with KPIs, lift table, mountain status by sector and a needs-attention list, the lift board with the change status modal, lift detail with wind and riders charts, opening checks, technical log and evacuations, the incident log and incident detail. A View as switch shows the console to a lift supervisor, the patrol director or the operations director, and changes are shared across screens as you click.
Integration with gate access and RFID cards (such as SKIDATA or Axess), lift control data from the manufacturer, Bank of Georgia or TBC Bank payments, Apple and Google Wallet passes, snowmaking control, grooming telematics, Meteoblue and Mapbox. Staff auth by role, a full audit log of every status change and casualty view, and the remaining screens: pistes, grooming, snowmaking, avalanche control, snow report, access, sales, ski school, rental, reports and the guest app in Georgian and English.
Every lift shows wind speed and gust from its top-station anemometer next to its own hold and close thresholds. Above a threshold the card turns amber with the text "Decision: lift supervisor", and the lift's status stays exactly as its supervisor set it.
Change status appears only for a lift's assigned supervisors, and every change records the reason, a note, the expected reopening time and whether guests see it. Only the patrol director approves incident reports and exports the log.
Roles without medical access see "Restricted" in place of casualty names and injuries. Opening the casualties of an incident is logged, and 112 calls are recorded with their time, reference and the services called.
Lifts open, pistes open, summit wind, temperature and avalanche closures sit in the top bar on every page, and the dashboard lists what needs attention: long holds, pistes closed without a reason, incidents open for over 2 hours and days near the capacity cap.

Designed and built a clickable route setting app for a chain of 5 bouldering and rope climbing gyms around Denver: every climb with the setter's grade next to the members' view, setting sessions run from strip and set checklists, and hazard reports that reach staff on shift at once and close a climb in one tap.

Designed and built a clickable supervisor console for a council beach safety service in the Algarve: a live map of every tower and its flag, rescue and first aid records with casualty health data kept behind a logged reason, lost child alerts matched across 18 beaches, and a roster that refuses lifeguards whose qualifications have lapsed.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab