~ trip2g
← главная
поставить звезду на github
сначала ответ
итог · 2025–2026

Создал руками 5%. Агенты и кодогенерация — всё остальное.

Один бэкенд-разработчик. Telegram-интеграция, биллинг, векторный поиск, федерация, мультитенантность — полтора года фулл-тайма. Боевой код (Go-prod + TS + SQL, без тестов) — 128k строк. Из них написано вручную ~6.4k — только там, где архитектура, контракты и компромиссы складываются. Claude Code написал остальное под контролем; gqlgen + sqlc + moq добавили ещё 139k бесплатно — статический код после кодогена, а не рефлексия в рантайме. Один человек, ×54 плечо на 177k строк собственного кода.

множитель человека
×54

177k собственного кода  ÷  6.4k набрано вручную

подтверждающие данные · ключевые цифры читать слева направо · важнее левее
собственный код
177k строк

Написан на Go, TypeScript, SQL. 15 месяцев нажатий клавиш.

кодогенерация
139k строк

Из схем, запросов, интерфейсов. Никогда не редактируется вручную.

вендор
190k строк

Бандл Tiptap + старый Milkdown. Не наш для рефакторинга.

ритм
1,615

Коммитов за 15 месяцев. ≈ 108/мес · 3.6/день.

ситуация → ответ почему это важно для соло-бэкенда
ситуация

Соло-бэкенд, растущая поверхность.

Obsidian-платформа с Telegram-ботом, биллингом и мультитенантностью. Один бэкенд-разработчик.

усложнение

Типобезопасность не должна тормозить поставку.

Написание GraphQL-резолверов, SQL-биндингов и моков вручную съело бы половину календаря.

вопрос

Как оставаться типизированными без лишних затрат?

Где контракт кодогенерации заменит написанный вручную клей без потери безопасности?

ответ

Три контракта, три генератора.

Схема → gqlgen. Запросы → sqlc. Интерфейсы → moq. 139k строк появляются бесплатно.

зачем нужна кодовая база четыре задачи · один рантайм
01

AI-native CMS.

Формы, шаблоны, markdown-слой. Контентный слой, с первого дня спроектированный для чтения агентами, а не только людьми.

02

Второй мозг для агентов.

Заметки, источники, ссылки — как граф, по которому LLM может ходить, а не просто читать.

03

Сеть знаний.

Федеративные меши: хабы публикуют, узлы подписываются, агенты собирают всё обратно.

04

Внешний RAG.

Поверхность для вызова другими агентами. Ваш контекст — на кране, с провенансом.

заметки о стеке · почему эти инструменты мнение Алексей Юрченко, основателя
gqlgen

Видит что пишет программист — подстраивает кодоген.

Schema-first: нет поля в модели — резолвер появится сразу. Такие мелочи плавно вливаются в процесс, а не ломают его.

graphql

«Просто хороший контракт между фронтом и бэком.»

Не магия. Не религия. Типобезопасный интерфейс, с которым согласны обе стороны — вот и весь смысл.

$mol

Ставка на серую лошадь.

Не тупит на 40 CRUD-страницах. Claude Code понимает паттерн по примерам и уверенно продолжает. Реактивный, атомарный, без виртуального DOM — 41k строк.

sqlite + litestream

«Данные на S3 с горячим кешем.»

Локальный SQLite для скорости, непрерывная репликация на S3 для надёжности. Встроенная БД, облачная долговечность.

построено надолго · не прототип за выходные вайб-код хрупок · этот — нет
почему это не вайб-кодинг-демо

Половину из того, что вы видите, можно
вайб-кодить за выходные. Вторая половина —
то, что выживает на второй месяц.

Вайб-код хрупок: быстро появляется и ломается на третьем граничном случае. Эта кодовая база подвергалась нагрузкам больше года — реальными пользователями, Claude, тестами, каждым рефакторингом. Соотношение тестов 2.53×, 120 однонаправленных миграций, типизированный клей от schema.sql до UI — это не украшение. Это разница между прототипом и надёжным markdown-движком.

тест на прочность
15месяцев

1,615 коммитов рефакторингов, регрессий и реальных пользователей. Соотношение тестов 2.53× против production Go. 120 миграций, все однонаправленные. Litestream на S3 — данные переживут сервер.

множитель человека · математика как один человек поставляет 177k строк
человек
ии + инструменты
итого
набрано вручную
6.4k строк

5% боевого кода. Архитектура, контракты, места где неверное решение стоит месяца.

написал claude
121.7k строк

95% боевого кода. Написан под контролем. Читается как джун с бесконечным терпением и без своего мнения.

сгенерировано
139k строк

Из schema.graphql, schema.sql, Go-интерфейсов. Бесплатно — если контракт правильный.

плечо
×54

177k собственного (own + codegen) ÷ 6.4k набрано вручную. На строку.

состав стека где живут 177k строк · по языкам
Go · тестытабличные
81,000
81k
TypeScript · $molфронтенд
41,000
41k
Go · productionрантайм · ≈5× human
32,000
32k
SQL · запросычтение · запись
2,600
2,600
SQL · миграции120 файлов
2,500
2,500
тесты vs production · go-сторона 200-ячеечный вафль · каждая ячейка ≈ 565 строк
production

32k
рантайм.

Хендлеры, сервисы, GraphQL-резолверы, задачи, бот, биллинг — код, который работает в продакшене.

тесты · 2.53×

81k
страховочная сеть.

Табличные юнит-тесты, интеграция на реальном SQLite, GraphQL-снапшоты. Это соотношение делает рефакторинги дешёвыми.

sql в трёх частях 120 файлов миграций · типизированные запросы sqlc
миграции
2,500строк

120 файлов, по одному на каждое изменение схемы. Только вперёд, только добавление.

чтение
1,476строк

SELECT-запросы для GraphQL. sqlc генерирует из них типизированные Go-функции.

запись
1,159строк

INSERT / UPDATE / DELETE. Транзакционно там, где важно; идемпотентно там, где нужно.

кодогенерация · детали 139k сгенерировано · 134 файла
множитель · детали

32k написано вручную.
139k сгенерировано.
плечо ×4.3.

Описываем контракт один раз — schema.graphql, schema.sql, Go-интерфейс — и тулчейн генерирует типизированный клей вплоть до точки вызова. Это соотношение и есть главная причина существования этих инструментов.

gqlgengraphql → go
~78,000
56%
sqlcsql → go
~43,000
31%
moqiface → моки
~18,000
13%
итого · всё в репозитории 506k строк · own 35.0% · gen 27.5% · vendor 37.6%
OWN · 177K
CODEGEN · 139K
VENDOR · 190K
собственный
177k

35.0% · 15 месяцев написанного вручную кода.

кодоген
139k

27.5% · получен из контрактов. Бесплатно.

вендор
190k

37.6% · бандл Tiptap + старый Milkdown.

итого
506k

100% · что видит линтер.

ритм · 1,615 коммитов за 15 месяцев сред. 108/мес · 3.6/день · пик m06 · 140
выводы · что говорят цифры прочитайте эти три · остальное забудьте
01

5% набрано вручную. 95% написано или сгенерировано.

Основатель пишет ~6.4k боевого кода (архитектура + сложные места). Claude пишет 121.7k под контролем. Кодоген добавляет 139k. ×54 плечо на 177k собственного кода.

02

Один бинарник. Запускается за секунды.

Go-монолит + встроенный SQLite + Litestream на S3. Никакой оркестрации, танцев с миграциями, церемоний холодного старта — просто ./trip2g.

03

Вертикальное масштабирование. Децентрализованный протокол.

SQLite не шардируется легко — но протокол федеративный. Один узел держит тысячи req/s; тысячи узлов образуют меш.

читать дальше · связанные статьи глубже о паттернах за этими цифрами
анатомия

Анатомия trip2g: 15 месяцев кода

Подробный разбор роста кодовой базы: что выходило первым, что рефакторилось и что бы мы сделали иначе.

читать →
архитектура

Env-паттерн: один IO-позвоночник, переносимая бизнес-логика

Как один интерфейс держит каждый use case тестируемым, переносимым и свободным от привязки к фреймворку.

читать →
поддержка · если это было полезно один клик — и всё
open source · MIT

Строили это публично.
Звезда имеет значение.

trip2g — платформа публикаций с открытым кодом. Если вы дочитали досюда, самый простой способ помочь — поставить звезду: это сигнализирует проект другим разработчикам и помогает работе продолжаться.

один клик · ноль затрат звезда на github

github.com/trip2g · MIT