Микро-SaaS для локального бизнеса: от $0 до $3K MRR за 90 дней
В январе 2025 года я зашёл в барбершоп в Браге с ноутбуком и листовкой на одну страницу. Руй, владелец, держал три кресла, отвечал на звонки между стрижками и терял записи каждый раз, когда звонок оставался без ответа. Я показал ему страницу бронирования с его услугами, уже загруженными внутрь. Он пожал плечами. Я предложил бесплатный пилот на 14 дней и пообещал загрузить всё сам за тридцать минут. Он согласился. Через девяносто дней четырнадцать точек платили мне каждый месяц. Выручка за месяц достигла $3,086. Расходы на сборку остались ниже $400 плюс мои вечера. Разбор ниже: почему я выбрал локальные услуги, какая единственная функция открыла кошельки, какой стек удержал расходы около нуля, как пятьдесят визитов превратились в десять пилотов и трёх первых плательщиков, плюс как тарифы от $99 до $299 вытянули остальное.
Почему локальные услуги
Сети держат ИТ-бюджеты и приложения лояльности. Одиночные точки живут на звонках, личных сообщениях в Instagram и бумажной книге у кассы. Владелец стрижёт, чинит машины или тренирует клиентов, телефон звонит посреди работы. Каждый пропущенный звонок сжигает стрижку за €25 или слот массажа за €60.
Я выбрал сегмент по четырём причинам. Во-первых, владельцы чувствуют боль еженедельно: пустые кресла смотрят на них. Во-вторых, они платят помесячно за инструменты, заполняющие кресла: они уже отдают деньги за рекламу без выхлопа. В-третьих, они остаются: когда ссылка бронирования живёт в профиле Google и шапке Instagram, вырвать её стоит им позиций и постоянных клиентов. В-четвёртых, крупные вендоры их игнорируют: аккаунт за €99 в месяц никогда не проходит отбор корпоративных продаж, улица остаётся свободной.
Я жёстко очертил границы. Я собрал список из 200 точек вдоль коридора от Браги до Порту. Я оставил только команды от трёх до пятнадцати человек без онлайн-бронирования. Фильтр оставил восемьдесят дверей, достойных визита.
Клин-функция: бронирование плюс напоминания
Руй выдал мне цифры в первый день. Точка теряла около семи записей в неделю из-за неявок. Средний чек держался на €25. Недельная утечка достигала €175, месячная подходила к €700. Дашборд, программа лояльности, рассылки ему были ни к чему. Ему не хватало только полных кресел.
Я выпустил одну вещь: публичную страницу бронирования на точку плюс SMS-напоминания за 24 часа и за 2 часа до визита, каждое со ссылкой отмены и переноса в один тап. Владелец управлял всем с одного экрана календаря. Клиенты ничего не меняли в привычках: они жали ссылку из Instagram или Google, выбирали окно, получали два сообщения.
Через три недели Руй насчитал две неявки в неделю вместо семи. Возвращённая выручка составила около €500 в месяц против подписки за €199. Он подписал платный план на месте и в ту же неделю рассказал двум соседним владельцам.
Я сознательно выкинул лишние функции. Никаких касс, никакого склада, никакой автоматизации маркетинга, никаких баллов лояльности. Дисциплина границ удержала сборку в шесть дней и поддержку около нуля.
Стек: Next.js плюс Neon плюс Stripe
Одна кодовая база обслужила все четырнадцать точек. Next.js App Router на Vercel рисовал каждую страницу бронирования по слагу клиента вроде /b/rui-cuts. Одна база Postgres на Neon держала три базовые таблицы: клиенты, бронирования, напоминания. Каждая строка несла tenant_id, каждый запрос фильтровал по нему.
Деньгами управлял Stripe. Каждый план лёг на подписку Stripe с пробными 14 днями. Портал клиента закрыл смену карт и переходы между планами, поэтому биллинговый интерфейс я не писал. SMS-напоминания слал Twilio по цене около $0.0075 за сообщение. Точка со 150 бронированиями в месяц запускала около 300 сообщений, почти $2.25 расходов на сообщения против €99 выручки и выше.
Владельцы точек входили по волшебной ссылке, паролей для сброса не появилось. Экран администратора показал календарь, список клиентов, список неявок с номерами телефонов.
Месячная инфраструктура составила $20 за Vercel, $19 за Neon, около $32 за Twilio. Итого ниже $75 в месяц против $3,086 выручки.
Привлечение: 50 дверей, 10 пилотов, 3 плательщика
Первая и вторая недели принадлежали улице. Я постучал в пятьдесят дверей с речью на 90 секунд и ноутбуком с их услугами, заранее загруженными. Списки услуг и цены я собрал из Instagram и Google до визита, поэтому демо показало их собственную точку целиком.
Предложение держалось фиксированным: бесплатный пилот на 14 дней с моей загрузкой меню, цен, мастеров, часов за тридцать минут, плюс один обучающий визит на 20 минут. Десять владельцев сказали да. Каждый вторник я садился с каждым владельцем и разбирал экран администратора: принятые брони, отправленные напоминания, посчитанные неявки.
К 45-му дню три пилота перешли в оплату: барбершоп Руя за $199, студия ногтей за $99, кроссфит-зал за $299 на два зала. Семь пилотов умерли, каждая смерть дала фильтр. Две точки просили полную кассу, строить её я отказался. Два владельца ни разу не открыли экран администратора, поэтому я ввёл требование одного обученного оператора на точку. Три точки держали меньше трёх сотрудников с потоком ниже болевого порога, отсюда взялся минимум в три места.
Три плательщика привели следующих одиннадцать. Каждое знакомство от платящего владельца конвертировалось в четыре раза лучше холодного визита. К 90-му дню счёт встал на четырнадцати точках: четыре на Starter, три на Growth, семь на Pro. Я просил карту в старт пилота через пробный период Stripe с первым списанием после 14-го дня, я приходил каждый вторник с распечатанными цифрами.
Цены: тарифы от $99 до $299 в месяц
Три тарифа отразили размер точки. Starter за $99 закрыл страницу бронирования, SMS-напоминания, одну точку, два места сотрудников. Growth за $199 добавил просьбы отзывов в Google после каждого визита, лист ожидания на полные дни, пять мест, еженедельную SMS-сводку для владельца. Pro за $299 добавил холд карты против неявок, несколько точек, ежемесячный звонок на 30 минут, где я разбирал с владельцем его цифры.
Математика 90-го дня читалась чисто: четыре аккаунта Starter принесли $396, три аккаунта Growth принесли $597, семь аккаунтов Pro принесли $2,093. Итого $3,086 в месяц. Расходы на сообщения и хостинг удержались ниже $75.
Pro за $299 выставил Growth за $199 разумным выбором, точки на один кабинет сами выбрали Starter без торга.
Скопируйте план на одной конкретной улице до строки кода. Составьте список из 200 точек, отфильтруйте команды от трёх до пятнадцати без онлайн-бронирования, соберите десять демо из открытых данных Instagram, постучите в пятьдесят дверей. Продавайте пилот, грузите данные сами, приходите по вторникам с распечатанными цифрами, просите карту в первый день. Три плательщика подтверждают клин. Четырнадцать выносят вас за $3K.