Наш стек технологий

Языки, фреймворки и платформы, на которых мы делаем продакшн-софт, — и проекты, где мы применили каждый из них.

Фреймворки

Наш основной мобильный стек с 2018 года — одна кодовая база на Dart для iOS, Android, веба и десктопа без отдельной команды под каждую платформу.

Каждое наше приложение выходит и на Android — платформенные API, фоновое выполнение, разрешения и требования магазина вместе с ними.

Фронтенд-фреймворк, в котором мы работаем, когда продукт уже на Angular, — строгая структура, подходящая большим долгоживущим приложениям.

Python-фреймворк, который мы берём, когда продукту нужны админка, аутентификация и модель данных в первый же день, а не самописный сервис.

Общая бизнес-логика для iOS и Android при том, что интерфейс каждая платформа строит свой, — альтернатива, когда Flutter не подходит.

Vue с серверным рендерингом, роутингом и SEO из коробки — так мы делаем сайты и веб-приложения, которые должны быстро грузиться и индексироваться.

Фронтенд-библиотека, в которой мы работаем, когда продукт уже на React, — компоненты, хуки и выросшая вокруг них экосистема.

Headless CMS, к которой мы обращаемся, когда контентом должны владеть редакторы, — готовая админка и чистое API вместо самописных.

UI-фреймворк Apple, на котором мы делаем нативные поверхности, недоступные Flutter-приложению, — виджеты, App Clips и расширения.

Так мы стилизуем весь фронтенд — утилитарные классы и токены дизайна вместо таблицы стилей, которая только растёт и никогда не чистится.

Наш фронтенд-фреймворк для админок, дашбордов мерчантов и веб-приложений, которые должны оставаться поддерживаемыми годами, а не спринтами.

Языки

Язык, на котором написано каждое наше Flutter-приложение, — строгая null safety, полноценный pattern matching и компиляция в нативный код и веб.

Наш бэкенд-язык для real-time API и сервисов под нагрузкой — маленькие бинарники, быстрая сборка и конкурентность, которая остаётся читаемой.

То, что мы берём, когда Flutter-приложению нужен настоящий Android под ним, — platform channels, фоновые задачи и интеграции с нативными SDK.

Там, где мы работаем с уже существующим PHP-бэкендом, — дорабатываем его, интегрируемся с ним и делаем мобильные и веб-клиенты, которые он обслуживает.

Наш язык для бэкендов, работы с данными и AI-интеграций — включая Python-биндинги, которые мы выпускаем к собственным инструментам на Rust.

Язык, на котором написана автоматизация наших мобильных релизов, — лейны Fastlane, собственные действия и связка с CI, доставляющая сборки в сторы.

Куда мы идём, когда важны и скорость, и корректность, — рендеринг документов, CLI-инструменты и сервисы, которые обязаны быть предсказуемо быстрыми.

То, что мы берём, когда Flutter-приложению нужен настоящий iOS под ним, — platform channels, нативные SDK, виджеты и App Clips.

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

Базы данных

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

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

База данных, которая едет внутри приложения, — локальные кэши, offline-first хранилище и всё, что должно работать без сети.

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

Каждый наш сервис выходит контейнером, поэтому на ноутбуке, в CI и в продакшене работает один и тот же артефакт, а не три разных.

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

Так мы упаковываем деплой в Kubernetes — сервис, конфигурация, секреты и ingress как одна версионируемая единица, которую можно откатить.

Так мы запускаем сервисы в продакшене — деплой пакетами Helm, откатываемые выкатки и масштабирование, для которого не нужен человек в три ночи.

Лёгкий обмен сообщениями между сервисами — publish/subscribe и request/reply без эксплуатационного веса полноценного кластера брокера.

Инструменты

Автоматизация релизов в нашей мобильной разработке — подписи, сборки и загрузка в сторы идут из CI, а не с ноутбука одного инженера в день релиза.

Все проекты, к которым мы прикасаемся, живут в Git — ревью пул-реквестов, CI на каждой ветке и история, понятная и спустя месяцы.

Сборочная система, через которую проходит каждый Android-релиз, — флейворы, конфигурации подписи и разрешение зависимостей под Flutter.

Не уверены, какой стек подойдёт вашему продукту?

Расскажите, что вы делаете, и мы предложим технологии под ваш бюджет, сроки и команду.

Связаться с нами