Home
Projects
← All projects

On my own

A four-person salon, with no rota on WhatsApp

The website of a premium nail salon in Madrid, and its in-house tool for shifts and holidays.

Status
In production
Stack
  • Astro
  • React 19
  • Tailwind 4
  • Cloudflare Workers
  • Supabase
  • Resend
The miascare.com home page on desktop: a hand with gold nails next to the salon's headline.

The problem

Shifts, holidays and time off were asked for over WhatsApp. And face to face.

In a salon open to the public, a day without cover isn't a minor detail.

Mia's Care is a premium nail salon in Retiro, Madrid. The team is four people.

The rota was done from memory, and memory failed. And the mistakes ended in a ‘But I told you…’.

The other problem was the website. It couldn't look like the typical neighbourhood salon. It had to look classier, with more investment behind it.

What I did

Product, design and build: the website and the in-house tool.

The first decision was not to pay for a scheduling SaaS. For such a small team, it wasn't worth it.

I built the tool with AI in two days. It has no AI inside: it's built with AI. And it keeps growing with what the salon needs.

The second decision was where the rules live: in the database, not in someone's head.

On the website, the job was about image. Design and styling done by hand, the Fraunces, Inter and Archivo typefaces, and a hero with a looping video made with AI.

How it works

  • Public website: static, built with Astro, in Spanish and English, with no React. It has structured data for a beauty salon, so Google and AI assistants can find it. Bookings go through the Booksy widget.

  • Mobile app: a PWA you install on your phone. Each member of staff sees their day, their shifts and their balance of days off. They request holidays or time off (full day, half day or by the hour) and see the status of each request.

  • Owner's inbox: requests arrive with warnings about the collective agreement and cover, and you can see how each one affects the calendar. The owner approves from there. The hourly rota is filled in from templates, and Madrid public holidays come in automatically from the City Council's open data.

  • Rules in the database: overlaps, notice periods, limits, balance and minimum cover are checked in Postgres, not in the browser. The balance is built from entries that are never deleted: a mistake is fixed with another entry. And every change is logged for audit.

Outcome

No more ‘But I told you…’. And with it, no more WhatsApp and no more paper.

Shifts, balances and requests can be checked without asking anyone or waiting for a reply.

Cost: €0 a month.

Next, not done yet: email notifications and an Excel export for the accountants.

For a team of four, a custom tool built with AI can beat a SaaS. On one condition: the rules live in the database, not in anyone's memory.

Apps
Blog
Projects
About
Game
Newsletter
Contact
Pages
Home
Privacy
Legal notice
Actions
Turn on dark mode
Leer en español