Один бэкенд-разработчик. Telegram-интеграция, биллинг, векторный поиск, федерация, мультитенантность — полтора года фулл-тайма. Боевой код (Go-prod + TS + SQL, без тестов) — 128k строк. Из них написано вручную ~6.4k — только там, где архитектура, контракты и компромиссы складываются. Claude Code написал остальное под контролем; gqlgen + sqlc + moq добавили ещё 139k бесплатно — статический код после кодогена, а не рефлексия в рантайме. Один человек, ×54 плечо на 177k строк собственного кода.
177k собственного кода ÷ 6.4k набрано вручную
Написан на Go, TypeScript, SQL. 15 месяцев нажатий клавиш.
Из схем, запросов, интерфейсов. Никогда не редактируется вручную.
Бандл Tiptap + старый Milkdown. Не наш для рефакторинга.
Коммитов за 15 месяцев. ≈ 108/мес · 3.6/день.
Obsidian-платформа с Telegram-ботом, биллингом и мультитенантностью. Один бэкенд-разработчик.
Написание GraphQL-резолверов, SQL-биндингов и моков вручную съело бы половину календаря.
Где контракт кодогенерации заменит написанный вручную клей без потери безопасности?
Схема → gqlgen. Запросы → sqlc. Интерфейсы → moq. 139k строк появляются бесплатно.
Формы, шаблоны, markdown-слой. Контентный слой, с первого дня спроектированный для чтения агентами, а не только людьми.
Заметки, источники, ссылки — как граф, по которому LLM может ходить, а не просто читать.
Федеративные меши: хабы публикуют, узлы подписываются, агенты собирают всё обратно.
Поверхность для вызова другими агентами. Ваш контекст — на кране, с провенансом.
Schema-first: нет поля в модели — резолвер появится сразу. Такие мелочи плавно вливаются в процесс, а не ломают его.
Не магия. Не религия. Типобезопасный интерфейс, с которым согласны обе стороны — вот и весь смысл.
Не тупит на 40 CRUD-страницах. Claude Code понимает паттерн по примерам и уверенно продолжает. Реактивный, атомарный, без виртуального DOM — 41k строк.
Локальный SQLite для скорости, непрерывная репликация на S3 для надёжности. Встроенная БД, облачная долговечность.
Вайб-код хрупок: быстро появляется и ломается на третьем граничном случае. Эта кодовая база
подвергалась нагрузкам больше года — реальными пользователями, Claude, тестами, каждым рефакторингом. Соотношение тестов 2.53×,
120 однонаправленных миграций, типизированный клей от schema.sql до UI — это не украшение.
Это разница между прототипом и надёжным markdown-движком.
1,615 коммитов рефакторингов, регрессий и реальных пользователей. Соотношение тестов 2.53× против production Go. 120 миграций, все однонаправленные. Litestream на S3 — данные переживут сервер.
5% боевого кода. Архитектура, контракты, места где неверное решение стоит месяца.
95% боевого кода. Написан под контролем. Читается как джун с бесконечным терпением и без своего мнения.
Из schema.graphql, schema.sql, Go-интерфейсов. Бесплатно — если контракт правильный.
177k собственного (own + codegen) ÷ 6.4k набрано вручную. На строку.
Хендлеры, сервисы, GraphQL-резолверы, задачи, бот, биллинг — код, который работает в продакшене.
Табличные юнит-тесты, интеграция на реальном SQLite, GraphQL-снапшоты. Это соотношение делает рефакторинги дешёвыми.
120 файлов, по одному на каждое изменение схемы. Только вперёд, только добавление.
SELECT-запросы для GraphQL. sqlc генерирует из них типизированные Go-функции.
INSERT / UPDATE / DELETE. Транзакционно там, где важно; идемпотентно там, где нужно.
Описываем контракт один раз — schema.graphql, schema.sql,
Go-интерфейс — и тулчейн генерирует типизированный клей вплоть до точки вызова.
Это соотношение и есть главная причина существования этих инструментов.
35.0% · 15 месяцев написанного вручную кода.
27.5% · получен из контрактов. Бесплатно.
37.6% · бандл Tiptap + старый Milkdown.
100% · что видит линтер.
Основатель пишет ~6.4k боевого кода (архитектура + сложные места). Claude пишет 121.7k под контролем. Кодоген добавляет 139k. ×54 плечо на 177k собственного кода.
Go-монолит + встроенный SQLite + Litestream на S3. Никакой оркестрации, танцев с миграциями, церемоний холодного старта — просто ./trip2g.
SQLite не шардируется легко — но протокол федеративный. Один узел держит тысячи req/s; тысячи узлов образуют меш.
Подробный разбор роста кодовой базы: что выходило первым, что рефакторилось и что бы мы сделали иначе.
читать →Как один интерфейс держит каждый use case тестируемым, переносимым и свободным от привязки к фреймворку.
читать →trip2g — платформа публикаций с открытым кодом. Если вы дочитали досюда, самый простой способ помочь — поставить звезду: это сигнализирует проект другим разработчикам и помогает работе продолжаться.