Case · SaaS
Stippa
Online appointment software for hair salons and beauty businesses, with a flat fee and no commission.
Go to stippa.nl- From, per month
- Commission on payments
- Languages
As of September 2026
- Role
- Everything, from product and design to development and support
- Stack
- Next.js, Supabase, Inngest, Sentry
- Since
- 2026

The problem
A salon with one or two chairs has little use for a heavy software suite. Yet that is often the choice: an all-in-one system with a till, stock, marketing and reports, of which the salon uses a small part and pays for all of it. The alternative is a booking platform that takes a percentage of every appointment or payment. That looks cheap, until your busiest month turns out to be your most expensive one too.
On top of that, a missed appointment costs real money. An empty chair in a small salon is revenue that doesn't come back. And sending reminders is exactly the kind of job that gets dropped at the end of a long day.
The approach
Everything is a module
Stippa is made of modules: online booking, a salon website, payments, a till. Every module can be switched on or off. A salon that only wants online appointments only sees that. The cost of that choice is on my side: building modular software is more work, because every combination has to keep working. That work belongs to the maker, not to the salon.

A flat fee, no commission
Stippa costs a fixed amount per month, from €9. There is 0% commission on payments from clients. A salon knows in advance what it will pay, even in a busy month. What each plan includes is on stippa.nl (opens an external site).

Reminders over WhatsApp as well as email
Stippa automatically sends a confirmation and a reminder, by email or over WhatsApp. WhatsApp, because that's where clients actually read their messages. If a salon wants, it can ask for a deposit at booking. Each salon picks what fits, and whatever it doesn't need stays off.

Built and supported by one person
There is no call centre behind Stippa. I build it, I keep it running and I answer the support email myself. So a question reaches someone who knows how it works, and feedback from a salon goes straight into the product. The trade-off: growth happens at the pace of one person. For a product that has to earn trust, I think that's a fair exchange.
Under the hood
Stippa is a web application built with Next.js. The data lives in Supabase, a Postgres database hosted in the European Union. All salons share the same database. That makes the most important technical work invisible: making sure one salon can never see or change another salon's data.
That happens on two levels. The database itself checks who the data belongs to on every query. And on every change to the code, an automated check runs across all 87 repositories, the pieces of code that talk to the database. A change that updates an appointment by its number alone, without checking which salon it belongs to, doesn't get through.
Work that doesn't have to happen right away, such as a thank-you email after an appointment, goes through a queue (Inngest). That way a busy morning doesn't slow the app down. Errors are reported through Sentry, so I usually see a problem before a salon notices it.
Result & status
- From, per month
- Commission on payments
- Languages
As of September 2026
Stippa is live and onboarding its first salons. That is honestly the stage it's in: I work closely with those salons, and their feedback decides what gets built next. Stippa is available in 7 languages, with Dutch as the main one.
What's next
- Bring more salons on board, one at a time and with personal onboarding.
- Keep building the modules the first salons ask for.
- Keep the app fast and simple, even as features are added.
Journal
More about Stippa
For everyone
Stippa's help centre, in every language the app speaks
Stippa works in Dutch, English, German, French, Spanish, Polish and Ukrainian, and as of this week so does its help centre. Screenshots included, in your language.
For everyone
A customer without an email address
Stippa required an email address for every customer. Bad luck for the regular who has phoned for years and never given one. That's fixed now.
For developers
Enforcing tenant isolation in CI with Supabase
Every salon in Stippa lives in the same database. How I make sure nobody can peek into the neighbours' place, and why the check now looks at reads as well.
