OpenClawBox — SaaS от идеи до первых платящих
Я — DoctorM&Ai, заведующий КДЛ с 15-летним стажем в хаосе пробирок, гематологических анализаторов и бесконечных Excel-таблиц. Днём колю кровь, ночью кодю. За плечами — десятки интеграций с Sysmex, Beckman Coulter и прочими железками, которые плюют данными в PDF или на экран. Решил: хватит мучений. Запилил OpenClawBox — SaaS, который "когтями" (claw = захват) выдирает результаты анализов из любого оборудования, парсит их в облаке, кидает AI на интерпретацию и генерит отчёты для врачей/пациентов. От идеи до первых 5 платящих клиентов — 4 месяца, 300+ часов кода, 2 фейла с OCR и MRR в 25к рублей на сегодня.
Это не глянцевый кейс с миллиардами. Это честный разбор: провалы, код, стек, метрики. Если вы соло-дев или indie-хакер в нише B2B — велкам. Статья длинная, с мясом: скролльте по структуре.
Проблема: Лабораторный ад, где данные тонут в бумаге и Excel
Представьте: малый КДЛ (как мой, 10 лаборантов, 500 проб/день). Оборудование — смесь: Sysmex XN-1000 (吐ит PDF), Mindray BC-6800 (текст на экране), старый рефлектометр (бумажный принтер). Лаборант вручную:
- Печатает/фоткает результат.
- Вбивает в 1C:Медицина или МИС (ошибки — 5-10% на ввод).
- Экспортит в Excel для врача.
- Врач интерпретирует: норма/патология, рефы по возрасту/полу.
Цифры боли (из моего опыта + опрос 20 коллег): - Время на пробу: 5-7 мин вместо 30 сек. - Ошибки ввода: 8% (гемоглобин 120 вместо 12.0 — фатально). - Задержка отчётов: 2-4 часа. - Стоимость: лаборант 60к/мес × 20% времени на ввод = 12к "сдуто". - Рынок: 50к+ малых КДЛ в РФ, 80% без автоматизации (данные Росстата + Минздрав).
Я пробовал API: Sysmex имеет HL7, но 70% оборудования — legacy без интерфейса. Интеграция — 100к+ руб/девайс. Импорт в МИС? Жди 3 месяца сертификации ФСБ/Росздрав. Пациенты ждут, врачи матерятся. Решение? Нужен "универсальный коготь": подключи камеру/сканер — и данные в облаке автоматически.
Провал №1 (мой личный): год назад купил сканер Epson за 20к — OCR на Tesseract жрал 70% accuracy на PDF с таблицами. Забил.
Решение: OpenClawBox — "когти" для данных + AI-интерпретация
Идея простая, как пробирка: SaaS на подписку (от 5к руб/мес за 1 устройство).
Как работает: 1. Захват (Claw): USB-камера/сканер на принтер/экран анализатора. Сервис OCR + ML-парсит таблицу (гемоглобин, лейкоциты и т.д.). 2. Облако (Box): Данные в базу, деанон (FID пациента), валидация (нормы по возрасту). 3. AI-доктор: Groq/Llama3 интерпретирует: "Гемоглобин 110 — анемия, срочно ферритин". Шаблоны по МЗ РФ. 4. Вывод: API в МИС/1C, PDF/Telegram для врача/пациента, дашборд.
MVP-фичи: - 1 устройство/камера. - Поддержка 10+ анализаторов (Sysmex, Mindray, Siemens). - AI-отчёты (80% точность на старте). - Auth via Supabase, billing Stripe/RBK.
Бизнес-модель: - Freemium: 100 проб/мес бесплатно. - Pro: 5к/мес (нелим проб, 1 девайс). - Enterprise: 20к+ (API, кастом ML).
Цель: 10 платящих в первый квартал. Ниша узкая — но монетизация жирная (ARPU 7к).
Реализация: Соло-дев на стероидах, стек и код без воды
Я один: MacBook M1, VSCode, GitHub Copilot (спас 30% времени). Нет команды — всё сам. Время: 300 часов (ночи после дежурств).
Архитектура (high-level):
[Анализатор] --> [Камера/Сканер] --> [Edge Agent (RPi/ПК)] --> [FastAPI Backend] --> [Supabase DB] --> [Groq AI] --> [Frontend/Dashboard]
|
[Stripe Billing]
- Edge Agent: Python-скрипт на Raspberry Pi 4 (2000 руб). Захват фото каждые 30 сек, локальный OCR, POST в API.
- Backend: FastAPI (Python 3.11) — быстро, async. Pydantic для валидации.
- DB: Supabase (Postgres + realtime + auth) — 0 руб на старте, scale auto.
- Frontend: Next.js 14 (App Router) + Tailwind + shadcn/ui. Vercel deploy.
- OCR/ML: EasyOCR (лучше Tesseract) + custom YOLOv8 для детекции таблиц (train на 500 своих PDF).
- AI: Groq (Llama3-70B) — 10x быстрее OpenAI, 0.1$/млн токенов.
- Infra: Vercel (FE), Render (BE, 10$/мес), Supabase (25$/мес).
Провалы в реализации: - OCR: старт 65% accuracy (шрифты кривые). Фикс: fine-tune YOLO на 2000 аннотированных скринах — 94%. Время: 2 недели. - Edge Agent: RPi overheated на 100% CPU. Фикс: cron + sleep, + heatsink. - Billing: Stripe не дружит с РФ. Перешёл на RBK Money + YooKassa — задержка 1 неделя. - Security: FID в plaintext — добавил AES-256 шифр (Fernet).
Код: Edge Agent (capture.py)
import cv2
import easyocr
import requests
import time
import base64
from cryptography.fernet import Fernet
# Config
API_URL = "https://api.openclawbox.ru/parse"
SUPABASE_KEY = "your_supabase_key" # env var
KEY = Fernet.generate_key() # шифр FID
reader = easyocr.Reader(['ru', 'en'])
cap = cv2.VideoCapture(0) # USB камера
while True:
ret, frame = cap.read()
if ret:
# Детект ROI (экран/принтер) - YOLO stub
roi = frame[100:800, 200:1200] # hardcoded для Sysmex
# OCR
results = reader.readtext(roi)
text = ' '.join([res[1] for res in results])
# Parse: regex для гемоглобин etc.
import re
hemoglobin = re.search(r'Гб\s*([\d.]+)', text)
data = {"hemoglobin": float(hemoglobin.group(1)) if hemoglobin else 0}
# Шифр FID (с QR на пробирке)
fid_enc = Fernet(KEY).encrypt(b"123456")
payload = {
"device_id": "sysmex_01",
"raw_text": text,
"parsed": data,
"fid_enc": fid_enc
}
# POST
resp = requests.post(API_URL, json=payload, headers={"Authorization": f"Bearer {SUPABASE_KEY}"})
if resp.status_code == 200:
print("Parsed OK")
time.sleep(30) # каждые 30 сек
Backend: FastAPI endpoint (/parse)
from fastapi import FastAPI, Depends, HTTPException
from pydantic import BaseModel
from supabase import create_client
from groq import Groq
import re
from cryptography.fernet import Fernet
app = FastAPI()
supabase = create_client("url", "key")
groq_client = Groq(api_key="gsk_...")
class ParseRequest(BaseModel):
device_id: str
raw_text: str
parsed: dict
fid_enc: bytes
KEY = Fernet.generate_key()
@app.post("/parse")
async def parse_result(req: ParseRequest):
# Деанон FID
fid = Fernet(KEY).decrypt(req.fid_enc).decode()
# Валидация норм (возраст из DB)
patient = supabase.table("patients").select("*").eq("fid", fid).execute()
age = patient.data[0]["age"] if patient.data else 30
norms = get_norms(req.device_id, age) # dict из DB
# AI интерпретация
prompt = f"""
Пациент {age} лет. Результаты: {req.parsed}.
Нормы: {norms}.
Интерпретируй по МЗ РФ. Кратко: норма/патология/рекомендации.
"""
chat = groq_client.chat.completions.create(
model="llama3-70b-8192",
messages=[{"role": "user", "content": prompt}],
max_tokens=200
)
ai_report = chat.choices[0].message.content
# Сейв в DB
data = {
"fid": fid,
"device": req.device_id,
"parsed": req.parsed,
"ai_report": ai_report,
"timestamp": "now()"
}
supabase.table("results").insert(data).execute()
return {"status": "ok", "ai": ai_report}
Frontend: Дашборд (Next.js page) Даш на shadcn: таблица результатов, realtime via Supabase Realtime. Графики — Recharts (тренды гемоглобина).
Deploy: vercel --prod, BE на Render (Dockerfile с uvicorn).
Тестирование: 1000 синтетических проб — latency 2-5 сек end-to-end. Load test: Locust, 100 RPS — OK на Render free tier.
Результат: Метрики, бабло и фейлы
Timeline: - Месяц 1: MVP (Edge + OCR). 150 часов. - Месяц 2: AI + Frontend. +100 часов. Beta в моей КДЛ — 200 проб/день, accuracy 92%. - Месяц 3: Маркетинг. Посты в Telegram-чатах КДЛ (5к юзеров), cold email 50 коллег. 20 триалов. - Месяц 4: Первые платящие. 5 Pro (25к MRR), 30 free.
Ключевые метрики (Google Analytics + Supabase): | Метрика | Значение | Коммент | |---------|----------|---------| | Пользователи | 45 (35 free, 10 trial) | 80% из TG/VC | | Проб/день | 1500 total | Мой КДЛ — 60% | | Retention D30 | 65% | Free -> Pro: 20% | | Churn | 2/7 (28%) | Один — "дорого", другой — "OCR глючит на Mindray" | | Revenue | 25к руб/мес (5×5к) | +15к от моего КДЛ | | Costs | 3к/мес (Render+Supabase+Groq) | Profit 22к | | Uptime | 99.7% | Один даун на Render (2 часа) |
Провалы с цифрами: - Churn: 28% — фиксим кастом OCR per device. - Acquisition: cold email CTR 5% (из 100 — 5 ответов). Лучше TG-каналы. - AI hallucinations: 10% (Llama соврала про нормы). Фикс: RAG с базой МЗ PDF.
Рост: +2 платящих на этой неделе. Projection: 50к MRR к концу года при 20% конверте.
Выводы: Что вынес, соло-девы, и куда дальше
Что сработало: - Ниша: врачи ненавидят рутину — pain killer, не vitamin. - Стек: FastAPI + Supabase = 80% boilerplate сэкономлено. Groq — killer для AI в indie. - MVP-first: запустил с 1 устройством, итерации по фидбеку. - Маркетинг: TG-чаты > LinkedIn. "Бесплатно первые 100 проб" — хук.
Что облажался: - Undestimated OCR: 40% времени ушло на ML. Совет: используйте off-the-shelf PaddleOCR. - Billing РФ: Stripe — миф. YooKassa forever. - Scale: на 10к проб/день — Groq bill 50$. Переходим на self-hosted Llama.
Уроки для соло: 1. Build for yourself first — мой КДЛ = perfect beta. 2. Честные метрики: не 1M ARR, а реал 25k MRR. Но scalable. 3. Open-source edge agent (GitHub 200 stars) — free маркетинг. 4. Длина пути: 4 мес до бабла — норма для B2B SaaS.
OpenClawBox живёт: openclawbox.ru (реал линк, регистрируйтесь, доктора!). Планы: mobile app, full HL7, экспорт в ЕГИСЗ. Если вы в healthtech — пишите в комменты, обменяемся war stories.
P.S. Как врач: сервис спас 10 часов/неделю в моей лабе. Пациенты получают отчёты за 5 мин. Стоило бессонных ночей. Лайк если помогло кодить свой SaaS! 🚀