Перейти к содержимому
Технологии

Чем мы работаем
и почему именно этим.

Страница для тех, кто будет читать наш код или поддерживать систему после нас. По каждому слою разобрано, что мы выбрали и почему.

01

Frontend

Next.jsReactTypeScriptTailwind CSSPlaywright

Next.js на App Router: серверный рендер там, где важна скорость первой отрисовки, и клиентские острова только там, где нужна интерактивность. TypeScript в строгом режиме: ошибка, пойманная на сборке, обходится дешевле бага, который нашёл клиент.

02

Backend

GoPythonFastAPITelegram Bot API

Go для сервисов, которые должны держать нагрузку и запускаться за миллисекунды. Один статический бинарник, предсказуемое потребление памяти, читаемый код без магии. Python — там, где нужна экосистема данных и ИИ.

03

Данные

PostgreSQLRedisQdrant

PostgreSQL по умолчанию: он умеет больше, чем от него ждут, и почти всегда снимает вопрос о втором хранилище. Redis — для очередей, кэша и лимитов. Отдельная векторная база появляется только когда поиск по документам действительно этого требует.

04

Инфраструктура

DockerKubernetesCaddyMinIOGrafanaGitHub Actions

Docker и Compose как база: проект должен подниматься одной командой на чужой машине. Kubernetes — только когда есть кому его эксплуатировать. Метрики и алерты ставим в день запуска, до того как случится первый инцидент.

05

ИИ

ClaudeGPTLangChainLangfuseVapin8n

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

Архитектура

Типовой проект
в одной схеме.

Так выглядит система, которую мы разворачиваем чаще всего. Kubernetes появляется здесь только тогда, когда у клиента есть кому его эксплуатировать.

architecture.txt
                    
   пользователь    Caddy / TLS 
                    
                  
                                   
              
             Next.js          Go API    
             SSR / ISR        chi/v5    
              
                            
                                          
                         
                       Postgres Redis  MinIO 
                         
                                     
                              
                                 воркер    
                               почта · TG  
                              
Правила

Четыре решения,
принятые заранее.

01

Скучные технологии по умолчанию

Новое берём, когда оно решает нашу конкретную проблему лучше существующего. Сомнение решается в пользу инструмента, который уже стоит у нас в проде.

02

Стек клиента важнее нашего

Если у вас есть работающая команда на другом стеке, пишем на вашем. Оставить систему, которую некому поддерживать, дороже любой экономии на разработке.

03

Одна команда для запуска

Проект должен подниматься на чистой машине через docker compose up. Если для запуска нужен человек с особым знанием, это дефект, и мы его чиним до сдачи.

04

Наблюдаемость с первого дня

Метрики, логи и алерты ставятся до запуска. Систему, о состоянии которой узнаёшь от клиента, нельзя назвать работающей.

Хотите обсудить
архитектуру до брифа?

Напишите нам, разберём вашу схему и скажем, где в ней узкое место. Это бесплатно и ни к чему не обязывает.