.shot { transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1); } .shot:hover { transform: translateY(-8px); }
Новини · 23 септември 2026

Zeus Barbershop, второ поколение:
едно приложение, един middleware, всички платформи.

Пуснахме новото клиентско приложение на Zeus Barbershop за iOS и Android и middleware-а зад него. И двете са написани отначало на Kotlin: една обща кодова база за двете платформи и бекенд, който позволява смяна на CRM системата на салона, без да се пипа приложението.

Zeus Barbershop app: Book, Home and Confirm your booking screens
Пуснато
23 септ. 2026
Платформи
iOS и Android
Приложение
Kotlin / Compose Multiplatform
Бекенд
Ktor middleware

За салона

Какво се променя на рецепцията

Едно приложение си струва само ако сваля работа от рецепцията и връща клиентите по-бързо. Ето какво прави второто поколение за Zeus в ежедневието.

По-малко телефонни обаждания

Клиентите виждат реалните свободни часове на салона и ги запазват без да звънят. Това, което беше разговор на рецепцията, е едно докосване на телефона — по всяко време.

Промените вървят в двете посоки

Преместване, отказ или клиент „от улицата“, въведени в CRM-а, стигат до телефона на клиента като push за секунди. Нищо не се съобщава по телефона.

Редовните се връщат по-бързо

Следващите свободни часове на любимия бръснар стоят на началния екран на клиента; последното посещение има „Запази отново“. Най-краткият път до следващото посещение е едно докосване.

Лоялност, която се вижда

Cashback балансът, нивото и прогресът живеят на началния екран, а не в брошура. Самата програма остава в CRM-а — нищо не се дублира и не се сверява на ръка.

Запазете CRM-а, който имате

Екипът продължава да работи в инструмента, който познава. Приложението чете и пише през middleware, така че смяна на CRM по-късно е промяна в бекенда без ъпдейт на приложението.

Два салона, едно приложение

Двата обекта на Zeus живеят в едно приложение със собствено работно време, екип и ценоразпис. Трети е конфигурация, а не проект.

За клиентите

Резервация за под минута

Първото поколение на приложението беше карта за лоялност с прикачена форма за резервация. Новото е построено около самото посещение: началният екран показва актуалния cashback баланс и последното посещение с „Запази отново“ с едно докосване, а резервацията може да започне от услуга или от бръснар — според това, за което клиентът се сети първо.

Два входа

Започвате от услугата или от бръснаря. Бръснарите носят своето ниво (Junior, Barber, Senior, Top, Chief), рейтинг и брой отзиви; опцията „който и да е бръснар“ оставя избора на салона.

Реални свободни часове

Слотовете за сутрин, ден и вечер идват от live графика на салона, така че приложението никога не предлага час, който рецепцията после да мести.

Плъзнете, за да запазите

Екранът за потвърждение показва бръснар, час, услуги, ценови диапазон, приеманите начини на плащане (в брой, карта, Apple Pay, Google Pay) и каква част от сметката покрива cashback балансът.

Гост-резервация

Посещение се запазва само с име и телефон. Вход — еднократен код на телефона, без пароли — трябва само за преглед, преместване или отказ на резервации.

Cashback лоялност

Cashback картата на Zeus стои на началния екран с текущия си баланс; нивата и прогресът се четат от собствената програма за лоялност на салона, а не се преизмислят в приложението.

Отзиви и салонът

Клиентите оценяват посещение до 14 дни след него, четат отзивите на салона и намират работно време, упътване, обаждане, съобщение и сайт на едно място. Български, английски и руски по подразбиране.

Любими бръснари

Клиентът отбелязва бръснар и до три услуги като любими. Началният екран показва следващите свободни часове на този бръснар за всяка услуга, а едно докосване върху час го запазва — без стъпки, без форми.

Начален екран по ваш ред

Петте блока на началния екран — салони, cashback, предстоящи резервации, любими бръснари, последно посещение — се показват, скриват и пренареждат от настройките, така че приложението се отваря с това, което клиентът реално ползва.

Известия на живо

Резервация, потвърдена, преместена или отказана от рецепцията, стига до телефона като push за секунди; промяна в лоялността обновява баланса. При отворено приложение е дискретен банер, на заден план — системно известие.

Екрани

Процесът на резервация, както е пуснат

Начало: cashback карта и последно посещение
Начало: cashback карта и последно посещение
Запази час: по услуга или по бръснар
Запази час: по услуга или по бръснар
Услуги с времетраене и цена
Услуги с времетраене и цена
Избор на бръснар: ниво, рейтинг, отзиви
Избор на бръснар: ниво, рейтинг, отзиви
Дата и час: live свободни слотове
Дата и час: live свободни слотове
Потвърждение: плъзнете, за да запазите
Потвърждение: плъзнете, за да запазите
За салона
За салона
Екстра резервация през рецепцията
Екстра резервация през рецепцията

Същият код върви и на Android. По-долу: Android билдът на български.

Zeus Barbershop Android app, home screen in Bulgarian
Zeus Barbershop Android app, booking screen in Bulgarian

Под капака

Middleware, който надживява CRM системата

Приложението никога не говори директно с CRM-а. Ktor middleware — Zeus бекендът — притежава API контракта за мобилното приложение и го превежда към това, което салонът ползва днес. Контрактът е замразен и се проверява с тестове, така че смяната на CRM е промяна в бекенда с нула релийзи на приложението.

Един контракт, 26 endpoint-а

Мобилното API е версионирана, документирана спецификация с OpenAPI експорт, равен на документацията по тестове. DTO-тата я следват байт по байт; каталогът от грешки се проверява с тестове.

CRM зад портове

Обекти, услуги, персонал, свободни часове, клиенти, записи, лоялност и отзиви са осем порта. CRM адаптерът е единственият модул, който познава вендора; архитектурният тест го гарантира.

Свободни часове от провайдъра

Свободните слотове се изчисляват от CRM-а и се нормализират от Zeus, със stale-while-revalidate кешове и обединяване на заявките, за да не се превърне натоварената събота сутрин в срив на CRM-а.

Content overlay

Богатите полета, които CRM-ът няма — локализирани описания, нива, hero изображения с BlurHash плейсхолдъри, текст за работно време — живеят в собственото хранилище на Zeus и се сливат по локал.

Безопасни записи

Всяко записване на резервация носи idempotency ключ, повторните опити връщат оригиналния отговор, а промените от страна на салона (преместване от рецепцията, отказ на място) се улавят от delta-poll задача.

Идентичност без пароли

Входът е еднократен код на телефона; сесиите са Ed25519-подписани токени с ротация и засичане на кражба. Rate limit-и по устройство и IP пазят анонимните endpoint-и.

Инженеринг

Какво беше нужно

  • ●Kotlin от край до край. Приложението е Kotlin Multiplatform с Compose Multiplatform UI и на двете платформи; бекендът е Kotlin на Ktor с PostgreSQL. Един език, една архитектура (VISCE), едни конвенции за mobile и сървър.
  • ●Собствена дизайн система. Без Material: UI-ят е изграден от Composables UI примитиви и Lucide икони върху собствените токени на Zeus, така че приложението изглежда като бранда, а не като фреймуърк.
  • ●Contract-first. Мобилното API беше написано, ревюирано и замразено преди първия етап на бекенда; route тестовете вървят и срещу фалшив CRM, и срещу записани отговори на истинския.
  • ●Production-grade от първия ден. Структурирани логове с маскирани телефони, Prometheus метрики, circuit breaker и bulkhead около CRM-а, security одит с отстранени находки, runbook-ове и launch checklist — 200+ автоматизирани теста го държат честен.
  • ●Готово за магазините. Рамкирани store скрийншоти на английски и български, sandbox акаунти за ревю от магазините, които никога не стигат до CRM-а, и Docker-изиран release pipeline.

За вас ли е?

Направено за Zeus. Пасва на всеки бизнес с график и редовни клиенти.

Нищо в този продукт не е специфично за подстригване. Заменете „бръснар“ със „стилист“, „зъболекар“, „треньор“ или „механик“ и същото приложение — резервации от live график, любим специалист, лоялност на началния екран, промени, пратени на телефона — работи без промяна. Middleware-ът говори с вашата система за резервации вместо с тази на Zeus.

Бръснарници и салониКрасота и маникюрДентални и медицински практикиФитнес и персонални тренировкиСпа и масажАвтосервиз и детайлингГруминг за домашни любимциРемонтни услуги

Какво трябва да донесете

  • ●Вашият бранд. Лого, цветове, тон. Приложението се строи върху вашите дизайн токени, а не върху дефолтите на някой framework — изглежда като вашия бизнес, а не като всяко друго приложение за резервации.
  • ●Системата за резервации, която вече ползвате. Или никаква: middleware-ът може сам да държи графика. Екипът ви запазва инструментите си; приложението говори с тях през middleware-а.
  • ●Един човек, който знае как работи рецепцията. Правила за отказ, депозити, кой може да избере „който и да е специалист“ — решенията, които правят приложението да усеща като вашето място.
  • ●Нищо друго. Дизайнът, двата app store-а, бекендът, мониторингът и launch-ът са част от доставката.

Zeus е бизнес с два салона във Варна, не корпорация. Бюджетът и сроковете бяха оразмерени според това — а резултатът е нейтив приложение в двата store-а, което клиентите му ползват всеки ден.

Наличност

Новото приложение се разпространява към клиентите на Zeus Barbershop в App Store и Google Play като ъпдейт на съществуващото; middleware-ът е live в продукция от 23 септември 2026. Прочетете цялата история на страницата на проекта Zeus Barbershop.

© 2026 Livotov Labs • Майсторски разработено в Европа, България