Why it moved
I designed the site in Webflow first. Then I rebuilt it in Laravel to get out of the vendor lock-in: it now runs on my own server, and nothing about it is rented.
It is a pattern in my work. I keep choosing ownership over rented platforms: this site, the Dantoni shop, and the server everything runs on.
What I decided
The site has two jobs: show her work, and make booking her easy. Each decision serves one of them.
One layout for every service
Makeup, lashes, brows and the workshop each get a page that opens the same way: a photo, and a card with the service and her approach. Moving between services never means learning a new page, and her photos stay the first thing you see.
Booking is always one click away
Booking is where every visit should end, so the “Foglalj időpontot!” button (Hungarian for “book an appointment”) sits in the header of every page, as the only filled button there.
Prices and terms before anyone asks
Every service shows its duration and price next to the booking button, and the home page explains booking, the deposit and the salon. Visitors can decide without sending a message first.
Made for phones
On a phone the cards stack into one column, the gallery shows one photo at a time, and the menu folds behind a button.


Under the hood
- 3.1A custom php artisan update command pulls the code, updates the dependencies, builds the assets and refreshes the caches in one go.
- 3.2A script prepares the photos at deploy time.
- 3.3One set of text sizes for the whole site: 14 px on phones, 16 px on desktop, and headings defined once.
- 3.4Deployed on Virtualmin, with SSL from Let’s Encrypt.

