Challenge
For Kristicx, a makeup artist in Kyiv, we built more than a landing page: a full booking system. A client picks a service and sees the slots that are actually free — the site calculates them from the artist's work schedule, existing bookings and Google Calendar — and books a date with a prepayment through Plata by mono (Monobank's card acquiring). Confirmation, messages and a reminder the day before the appointment arrive in Telegram automatically.
Solution
Everything behind the scenes is managed from a custom admin panel: the booking calendar, a client database with visit history, prices, portfolio photos (uploaded straight from a phone), page copy and even SEO fields. No monthly fees for a CMS or booking services.
We are especially proud of the site's visibility in search and AI assistants. The site serves a linked schema.org graph (LocalBusiness with geolocation, prices and a booking action, Person, FAQPage), a dynamic sitemap with photos, a separate SEO page for each service and llms.txt following the llmstxt.org standard. So when someone searches "wedding makeup Kyiv", both Google and AI search engines answer with current prices and a booking link.
- Online booking with real free slots: schedule − bookings − Google Calendar
- Prepayment through Plata by mono with a webhook and a status page
- Telegram bot: a card for every request, two-way messaging with the client
- Automatic reminders the day before the appointment (Vercel Cron)
- A custom admin panel with 9 tabs: calendar, CRM, services, content, SEO
- A separate SEO page for each service — generated automatically from the database
- JSON-LD @graph: LocalBusiness + Person + FAQPage + ReserveAction
- llms.txt / llms-full.txt — GEO (generative engine optimization) for AI search
Results
Status: Production: kristicx.online is live and has been handed over to the client.