Все продукты
I. Собственные продукты и фреймворкАктивенСолоBuild-in-public

EcoMap

Жители Узбекистана отмечают экологические нарушения на карте с фото и геометкой — а операторы видят их в течение минут.

41.3°N69.3°EТашкентcivic-tech
Что это

EcoMap — это civic-tech платформа для сообщений о нарушениях. Любой может поставить метку на карте города, приложить фото нарушения и следить за делом до его решения. Telegram-бот отвечает за авторизацию и уведомляет нужных операторов; админ-консоль держит очередь под контролем.

Построено в одиночку за две итерации — v1 на Supabase, затем полная переписка на self-hosted монорепозитории Bun · Elysia · Drizzle · Better Auth. Миграция — главная техническая история: осознанный уход от привязки к BaaS к собственному стеку, который я контролирую от края до края.

§01

Что он умеет

5 сигналов

  1. 01 · Карта
    Отчёты с меткой и фото на карте Leaflet

    Граждане ставят метку, прикладывают фото, описывают нарушение. У каждого отчёта есть страница с медиа, локацией и кнопкой «Помочь решить». Геометки нормализуются на сервере; изображения проходят через sharp перед хранением.

  2. 02 · Авторизация
    Авторизация через Telegram в вебе

    Вход через Telegram-бота с помощью postMessage + кросс-доменной сессионной cookie. Флоу обрабатывает дубли аккаунтов, синхронизирует данные профиля Telegram в локальную запись пользователя и использует USE_SECURE_COOKIES вместо NODE_ENV для продакшн-поведения.

  3. 03 · Стек
    Типобезопасный fullstack через Eden Treaty

    API на Elysia.js экспортируется в Next.js-клиент через Eden Treaty — сквозные типы без codegen. Один источник истины для форм запроса и ответа; рефакторинги распространяются по всем четырём приложениям монорепозитория.

  4. 04 · Джобы
    Фоновая обработка вне HTTP-пути

    Отдельное приложение джобов обрабатывает деривативы фото, AI-категоризацию и Telegram-уведомления через очередь. Долгие задачи вынесены из цикла запроса; очередь работает под systemd.

  5. 05 · i18n
    Трёхъязычный UX с первого дня

    Русский, узбекский и английский — first-class; next-intl обеспечивает локаль-aware маршрутизацию, и есть явный фикс краевого случая с бесконечным редиректом, в который часто попадают BaaS-адаптеры.

§02

Стек

Языки
TypeScriptSQL
Фреймворки · Инфра
Next.js 16React 19Elysia (Bun)Eden TreatyDrizzle ORMPostgreSQLBetter AuthgrammY (Telegram)sharpnext-intlRedisTurborepo
Примечание

Домен ecomap.uz зарезервирован; публичный запуск и build-in-public разбор миграции Supabase → монорепозиторий стоят в очереди. Напишите, если хотите разбор кода.

Сейчас

Открыт к ролям Senior / Staff инженера и избранному фрилансу — продакшн-AI, платформы и full-stack разработка.

Связаться