Operational copilot · Constitution-bound

The agent that knows your calendar,
your staff and the sea.

Not AGI. Not a chatbot that chats. An invisible digital employee that runs your school's logistics: it reads the sea — computes it, doesn't guess it — respects the safety rules, and handles the rest. 5 minutes become 5 seconds, sealed inside your school.

Agent · Your school Sealed
How will it be Saturday 10am at Espinho?
Agent
Saturday 10:00, Espinho:
• Wave 1.2m at 9s, SSW
• Wind 14kt cross-shore
• Score 7.4 / 10 for beginners

Best window 10:00 – 11:00.
open a beginners class then, 6 spots, 35€
Agent
Class opened — Sat 10:00, 6 spots
Live on marketplace
Waitlist (3 surfers) notified
I'll ping you Friday 18:00 if forecast shifts.
Type a message…
Your Agent knows your school. It's not a generic chatbot.
Foundation + customisation

SurfBooking's charter. Your school's layer.

Every Agent on SurfBooking runs on the same hard foundation — privacy, audit, honesty, no-leak. Your school adds its own layer on top.

Pinned foundation Applies to every school, on every page, every minute

The SurfBooking Charter

The platform charter we wrote and we follow. Defines what every Agent — on every school, on every device — must do and cannot do. Privacy between schools. Audit trail. No invention. No PII leak. We are bound by it just like you. It does not bend for revenue, for VCs, for shortcuts.

Your layer

Your school's charter

Built on top of ours. House rules, your school's voice, student quirks, special protocols. The Agent reads it before every answer. Evolves with you every day.

Privacy promise

We tune the rules. We don't read the conversations.

The Surf Booking team sees anonymised signals of how your Agent is used and whether people found it helpful — usage and thumbs up/down, aggregated. Nothing more. We never read what you said to the Agent, nor what it replied. Every conversation stays sealed inside your school.

We see
Anonymised usage and satisfaction signals. Aggregated.
We never see
The content of your conversations. Ever.
What your Agent does

From a single line, the Agent reaches every corner of your school.

Reads your forecast

Proprietary swell + wind + tide per spot. Suggests the best windows for each level.

Opens classes

Single, batch, pack or external (Airbnb / Booking). Wizards guide the school step by step.

Explains every record

Waiting list, equipment, instructor history, student progress, certifications. Pulls from your live data — never invents.

Talks to your waitlist

New class opens — notifies the right surfers (level, beach, language match) and tracks who answered.

Reads your numbers

Bookings, revenue, cancellations, average rating. Spots patterns you missed — "3 cancellations on windy Sundays this month".

Respects the rules

Pedagogical ratios, age caps, regulatory limits — validated automatically before any class goes live.

Layer 1 · Locked
SurfBooking foundation
Server-pinned rules every Agent obeys — privacy walls, SurfBooking ratios, RGPD, audit trail. Same for every school, every conversation, every deploy. No school can override these.
+
Layer 2 · Yours
Your school's layer
What you tell us about your school — house rules, voice, beach particulars, equipment quirks. We weave it into every reply. Edit it whenever you want; the foundation always wins on conflicts.
Public pillars

Seven promises every Agent keeps.

The full charter is longer and audit-grade. These seven are the ones a school cares about most.

01 Shipped

Privacy between schools

Each school is a sealed silo. No Agent, instructor or partner from one school can read another's data. Separation is enforced server-side, not in the UI.

02 Shipped

Your school's context

The file where you write your rules, voice and quirks. The Agent reads it before every answer. Free to edit — evolves with you every day.

03 Designed

Honesty

The Agent cites the source of every fact. When unsure, it declines. It doesn't invent. When it doesn't know, it says so — in plain language, no corporate-speak.

04 Shipped

Server always decides

Hiding in the frontend is never enough. Every sensitive request is validated server-side. You never rely on what the screen hides — neither do we.

05 Designed

Capacity, not content

We never read the texts. We never know what you said to the Agent or what it replied — only anonymised usage metrics. Measuring the Agent's QUALITY over time is the next step (being built).

06 Shipped

No abuse

Max length per question. Hourly limits per user. Detector for Agent manipulation attempts. No room to abuse.

07 Shipped

Beach Editais: ratio per coach, not per lesson

When a lesson bundles two or more coaches to expand capacity, Portuguese beach law requires students to be split into independent sub-groups on the sand — each sub-group respecting the single-coach ratio. The platform surfaces this rule on every creation, edit and check-in, in plain pedagogical copy. It doesn't block (the operation is the school's); it informs, protects and records.

Audit-grade — concrete proof

What auditors actually see.

Under NDA, regulators inspect the SHAPES below — not the content. Administrative actions land in an append-only audit log; the refund ledger goes further with a server-side hash chain so payout reconciliation is hash-verifiable on replay.

Administrative action
event=school·approved · actor=[admin] · at=[ISO timestamp] · target=[id]
Each approval / rejection / role-change is recorded with the actor and the target. Append-only by convention. Pulled into a regulator report on demand — never sent unprompted.
Per-school context edits
school=[id] · what=school·context · bytes=[size] · edited_by=[owner] · at=[ISO timestamp]
Every edit to your school's context is versioned with author + timestamp + size. We never disclose the content of the edit to anyone outside your school.
Refund ledger (hash-chained)
booking=[id] · event=refund·processed · amount=[REDACTED] · tier=[window] · prev_hash=[…] · row_hash=[…]
Refunds are written to a separate append-only ledger so payout reconciliation is hash-verifiable server-side. The amount itself isn't visible to auditors — the chain makes tampering instantly detectable on replay.
Right-to-erasure proof
user=[id] · event=account·purged · scope=[every PII surface] · at=[ISO timestamp]
Right-to-erasure requests are logged with timestamp + scope so the operation is auditable. Auditors see the entry — your personal data is unreachable, not just hidden.
These are EXAMPLE SHAPES with synthetic IDs. The audit access itself runs under a signed NDA via [email protected] — auditors see your controls, never your content.

Your conversations stay yours.

The Agent's prompts, its core configuration and your school's context never leave us. We don't share them with auditors, with other schools, with anyone. What we do open up — under NDA, when a regulator asks — are our controls: the code paths that prove privacy, audit-trail integrity and RGPD work. Never the content they protect.

v11.0.0 · current Last update 2026-05-15 See the features → For schools →
Voice · shipping today

The Agent listens. Then acts.

Two mics in the calendar: header for bulk, lesson tile for surgical. Browser-native speech, no commands to memorise, never opens chat silently — stays in the calendar so you don't lose flow.

Best window
"Move to the best day this week" — agent fetches 168h forecast, scores per level (wave + period >12s + offshore wind), picks the top hour and shows conditions before confirm.
Bulk in one sentence
"Move all beginner lessons to next week / next month / the best day." Dozens of slots reschedule in parallel with per-lesson conditions visible.
Lesson-aware edits
Mic on the lesson tile knows the slot: "Instructor Pedro" / "Price 55€" / "6 students" / "Duplicate to Saturday at 10". Direct PUT, no menus.
PT-PT mishear tolerance
Speech engines hear "Móvel" instead of "Move-a". Parser normalises, accepts "dia 24" / "next week", and word-numbers ("cinco alunos") — built for how schools actually speak.
Stock-aware chat
Ask "how many M wetsuits do I have?" — the agent answers from a pre-computed stock block, never invents numbers. Maintenance qty separate. Lazy-fetched so unrelated queries don't pay the cost.
Never opens the agent silently
If parser can't understand, shows examples in a toast — stays in the calendar. The chat agent only opens when user explicitly says "open the agent". Stops the frustrating "AI tried to answer and made it worse" pattern.
Ready when you are

Create your school's layer.

The foundation is already running. The school layer is yours to write. Open your school, edit the context file in two minutes, and the Agent starts answering with your house rules from the next conversation onwards.

Create my school's constitution →
0€ until 2027 · 60 seconds setup · No card required