Oleg Katrichuk
Назад к работам
Главная beautyfutura.com — встраиваемый AI-чат для бьюти-салонов, мультитенантный SaaS

Futura AI — собственный SaaS-продукт · 2026

AI-ассистент, которого салон встраивает к себе за две минуты

Мультитенантный SaaS: встраиваемый AI-чат, отвечающий клиентам салона 24/7 — лоадер ~3 КБ, виджет-iframe, .NET-бэкенд и Claude с поиском по каталогу услуг и цен каждого тенанта.

Живой продукт (beautyfutura.com) — салон добавляет AI-ассистента одним тегом, без какой-либо интеграции

.NETNext.jsTypeScriptClaude APIpgvectorPostgreSQLMulti-tenant SaaS
Перейти на сайт

Проблема

Бьюти-салоны тонут в повторяющихся сообщениях — сколько стоит балаяж, работаете ли в воскресенье, можно ли на окрашенных волосах. Владелец проводит часы, отвечая на одни и те же вопросы, вместо того чтобы работать. Готовые чат-боты это не решают: они общие, не знают именно этот салон с его услугами и ценами, а подключить их — это IT-проект, который нетехнический владелец никогда не доведёт до конца. Нужен был ассистент, который знает конкретный бизнес — и которого владелец может установить сам.

Подход

Сделал Futura как мультитенантный SaaS, слоями:

  • Крошечный лоадер виджета (~3 КБ, IIFE-бандл) — единственное, что салон вставляет на свой сайт.
  • Iframe-приложение виджета (Next.js) — изолированное от CSS и JavaScript хост-сайта.
  • .NET-бэкенд — тенанты, диалоги и оркестрация AI.
  • Claude с retrieval (pgvector) по собственному каталогу каждого тенанта, чтобы ответы основывались на реальных услугах и ценах, а не выдумывались.
  • Мультитенантность с первого дня — каждая запись привязана к тенанту, закреплено в ADR ещё до первой таблицы.
Дашборд тенанта Futura AI — управление услугами, ценами и диалогами для бьюти-салона

Стек и почему

  • Embed = лоадер + iframe, не SDK — салон вставляет один <script>; iframe изолирует виджет, чтобы он не сломал и не был сломан стилями хост-сайта.
  • .NET 10 clean architecture — Domain / Application / Infrastructure / Api; правила тенантов и диалогов — это реальная доменная логика, тестируемая.
  • Claude Sonnet 4.5 + Haiku 4.5 — Sonnet для настоящих ответов, Haiku для дешёвого пути. Контроль расходов — это фича, когда тариф начинается с $0/мес.
  • pgvector в той же Postgres — retrieval по каталогу тенанта без отдельной векторной базы.
  • Hetzner для API, Vercel + Cloudflare R2 для edge — stateful-бэкенд остаётся дешёвым на VPS, а лоадер и виджет отдаются быстро с edge.

Результат

  • Живой продукт на beautyfutura.com — салон устанавливает ассистента одним тегом <script> примерно за две минуты, без какой-либо интеграции.
  • Ассистент отвечает на трёх языках (английский, украинский, русский), обрабатывает фото и голосовые сообщения, передаёт человеку, когда нужно.
  • Архитектура масштабируется по тенантам: новый салон — это новая запись, а не новый деплой.
AI-виджет Futura в действии на сайте салона — отвечает клиентам об услугах и ценах в реальном времени

Что было сложно

Две сложные части. Во-первых, embed: виджет, который грузится на чужом сайте, должен оставаться невидимым до момента нужды, быть устойчивым к их CSS и оставаться крошечным — отсюда лоадер ~3 КБ плюс iframe вместо тяжёлого SDK. Во-вторых, grounding: ассистент, который угадывает цены салона, хуже отсутствия ассистента. Настоящая работа была в слое retrieval — чтобы Claude отвечал строго из каталога конкретного тенанта и говорил «давайте соединю вас с командой» вместо выдумывания ответа.

Другие проекты

Нужно что-то подобное?

Беру небольшое число проектов одновременно. Если это похоже на вашу задачу — напишите.