// Manifesto

About

made by operators

Clay started because every booking platform we tried treated studio owners like leads to be milked. Annual contracts. Surprise transaction fees. Members repackaged for ClassPass. Aggregator subdomains in the URL bar. We refused, then we wrote our own.

  • We don't lock you in for 12 months.
  • We don't take a fee on top of Stripe.
  • We don't push your members to ClassPass or Urban Sports Club.
  • We don't charge for the App Store — there is no App Store.
  • We don't host your data outside the EU.

// Story

Where Clay comes from

Clay App is a product of Alt F Awesome, an independent studio in Amsterdam. We build software for boutique gyms, pilates studios and EMS operators across the Netherlands and the EU.

We host on EU infrastructure: Next.js on Vercel Frankfurt, Payload CMS and Postgres 16 on Render Amsterdam. Member data never leaves the continent. GDPR isn't a checkbox on our roadmap — it's the architecture.

Stripe is the source of truth for billing, the CMS is the source of truth for everything operational. The two reconcile through an idempotent webhook pipeline that has its own deduplication ledger — because retries should never charge twice.

We bill monthly. We publish our pricing on the homepage. If we ever change either of those, you'll find out before your next invoice — not buried in a footer somewhere.

// Trust & data

Boring on purpose. no surprises.

Studios run on uptime and trust, not vibes. Here's what's actually wired in — with the engineering primitives behind each promise so you can audit it yourself.

  • /01EU only

    Data stays in the EU — always

    Front-end on Vercel Frankfurt, Payload CMS and Postgres on Render Amsterdam. Member personal data never leaves the continent. Card data is handled by Stripe under PCI DSS — we only store Stripe customer IDs.

    Vercel Frankfurt · Render Amsterdam

  • /02Idempotent

    Webhooks dedupe, bookings roll back

    Every Stripe event is signed and deduplicated against a `ProcessedStripeEvents` ledger — retries never cause double-charges. Bookings deduct credits first, verify capacity, then commit. Oversells roll back and refund the credit automatically.

    Webhook idempotency · Atomic bookings

  • /03Tenant-scoped

    Studios can't see each other's data

    Tenant isolation is enforced in Payload access functions (`readByTenant`, `writeByTenant`, `injectOrganization`) on every business collection — not just hidden in the UI. A trainer in studio A cannot read studio B's bookings, members or revenue. Ever.

    Payload access fns · organization scope hook

  • /04Open exit

    Your data, your subscriptions, your exit

    Stripe is the source of truth for billing — if you leave Clay, your subscriptions keep running on your own Stripe. Members and bookings export to CSV from the admin. After cancellation we hold data for 30 days so you can take everything, then permanently delete.

    CSV export · Stripe Connect · 30-day delete

Verified against the internal production-readiness audit (April 2026). The full verdict is published in our docs — ask if you want a copy.

Things we won't do

  • No annual contracts

    Cancel any month from the admin. Your Stripe subscriptions keep running on your own account when you leave — we just stop the Clay invoice.

  • No platform fee

    You pay Clay's fixed monthly price. Members pay standard Stripe NL rates. We add 0% on top of either side. The optional Stripe Connect `application_fee_percent` is yours to set if you operate a chain.

  • No member resale

    Your member list is yours. We don't push them to ClassPass or Urban Sports Club, ever. We don't run an aggregator marketplace. We don't have a Clay App where your members 'discover' competing studios.

  • No marketing dark patterns

    Pricing on the homepage in three tiers. No 'contact sales' wall, no fake 'only 2 spots left' countdowns, no progress bars that reset. The same humans who write the code answer the support email.

// Parent

Made by Alt F Awesome

Independent studio in Amsterdam building tools for boutique fitness, beauty and wellness operators across Europe.

Visit altfawesome.com

// Contact

Reach the team

Pricing questions, migration help, partnership ideas — the same humans answer all of them.

hello@clayapp.nl

Address
Wijttenbachstraat 50 1093 JD Amsterdam The Netherlands
KvK
96640413
VAT
NL005222275B75

We answer within one business day — often sooner. No form loops, no sales pitch.

Pick what your question is about

Or email us directly hello@clayapp.nl

Startyour studio.

No demo needed. Free to create your tenant, monthly cancellable, your brand from day one. Connect Stripe Connect when you're ready to take the first booking — we'll never touch the money.