Привет, я Азизхон Баходыров
React / Next.js разработчик
Я был единственным фронтендером на админках с реальными заказами, курьерами и выплатами. Сейчас строю магазин и CRM для локального бизнеса и пишу об этом по ходу дела.
ТашкентЧто я построил
Три проекта, три разные ситуации. Один — прод-система, о которой я могу только рассказать, код принадлежит компании. Один — полностью открытый, можно прочитать целиком. Один я строю прямо сейчас, в открытую.
Noor, операционные и мерчант-админки
Платформа доставки еды · React-разработчик, 2024-2025
Три отдельных фронтенд-репозитория в одной компании и три разные роли в них.
Админка для мерчантов
Построил почти единолично, от начала до конца: заказы, тарифы, биллинг и комиссии, промокоды, счета, отчётность, интеграции для партнёров. Панель, через которую бизнесы на платформе ведут свою операционку. Realtime-чат на чистом WebSocket, со своими хуками и utils и с auth-wait хендшейком, который мы сделали вместе с бэкендом: после подключения он немного ждёт токен, прежде чем начать работу. Позже добавил полноценную систему учёта наличных с расчётом комиссий.
Центральная операционная админка (cpanel)
Самая большая и сложная из трёх систем: управление курьерами, живой трекинг, чат, логистика транспорта и батарей, финансовые транзакции компании. Я был основным архитектором и построил почти всё сам за первый год, а затем ввёл в проект и ревьюил сменщика, когда фокус сместился на мерчант-панель.
Клиентский сайт
Контрибьютор в Next.js 15 сайт: живой GPS-трекинг курьера с анимированной отрисовкой маршрута на карте, оптимизация рендеринга и памяти для этой карты. Также i18n, Framer Motion, OTP-авторизация, деплой через Docker и GitHub Actions.
Код компании. Я был автором или контрибьютором, но давать на него ссылку не могу, это не мой код.
Vocabulary, тренажёр слов с интервальными повторениями
Личный проект · открытый код
Тренажёр слов с двумя независимыми SM-2-треками, тем же алгоритмом интервальных повторений, что в Anki. Узнать слово и вспомнить его самому — разные навыки с разной кривой забывания, поэтому у них отдельные графики повторений. Next.js App Router и TypeScript. Данные слов спрятаны за интерфейсом repository: сейчас это Notion, а смена хранилища позже означает один новый класс вместо переписывания. Озвучка через Web Speech API, без платного TTS.
- Два независимых SM-2-трека: узнавание и воспроизведение считаются отдельно
- Repository-паттерн. Сегодня Notion, смена хранилища — один новый класс
- Next.js App Router, TypeScript, Tailwind, Prisma + Postgres для стриков
- Озвучка слов через Web Speech API, без платного TTS-сервиса
Собран с Claude Code. Я прочитал и понимаю весь код.
Открыть на GitHubMaxler, магазин и CRM для реального бизнеса
Собственная инициатива · франшиза спортивного питания
Собственная инициатива: сделал это для реального локального бизнеса спортивного питания, чтобы прийти к ним с готовым продуктом. У них пока нет юрлица и платёжного шлюза, поэтому заказы уходят мгновенно через Telegram Bot API. Next.js, React 19, Tailwind CSS v4, TypeScript, Feature-Sliced Design.
- Нет юрлица, нет платёжного шлюза. Заказы мгновенно уходят через Telegram Bot API
- Релиз по фазам: сначала рабочий MVP, каталог, корзина, мгновенный заказ, потом итерации
- Next.js, React 19, Tailwind CSS v4, TypeScript, Feature-Sliced Design
Мой собственный проект, пока закрыт, он не закончен.
tg-notion-sync, перенос финансов из Telegram в Notion
Личный проект · Node.js-сервис
Банк присылает уведомления об операциях в Telegram, а вручную переносить каждую в Notion — как раз то дело, которое я постоянно откладывал. Обычный Bot API тут не подходит: он не может читать сообщения другого бота в чате, если мой бот не добавлен туда с админ-правами, а для личных банковских уведомлений это не устроить. Поэтому сервис заходит как обычный пользовательский аккаунт Telegram через MTProto, тот же протокол, что у официального приложения, и слушает нужный чат в реальном времени.
- Читает личный чат через MTProto (GramJS), потому что Bot API не даёт доступа к сообщениям другого бота там
- Разбирает банковские уведомления регулярными выражениями: сумма, валюта, дата, карта, остаток, место операции
- Сам создаёт запись в Notion, сопоставляя карту со счётом
- Не угадывает категорию траты автоматически — это заполняется вручную, угадывание было бы недостоверным
Собран с Claude Code. Я прочитал, понимаю и поддерживаю весь код.
Открыть на GitHubКак я работаю
Три привычки, которые видны в каждом проекте выше.
Релиз по фазам
Сначала рабочий MVP, основной сценарий, без украшательств, потом итерации по тому, чем реально пользуются. Именно так сейчас строится Maxler: каталог и мгновенный заказ раньше всего остального.
Владею всем фронтенд-слоем
Клиентские витрины и внутренние admin/CRM-экраны, которые никто снаружи компании не видит. Мне одинаково комфортно по обе стороны этой границы, часто в одном и том же проекте.
Честно называю границу
Если фича упирается в эндпоинт бэкенда, которого ещё нет, я так и говорю и останавливаюсь там, вместо того чтобы городить костыль и делать вид, что всё готово.
На чём я строю
По категориям, а не по хайпу.
Заметки из Telegram-канала
Пишу про работу по ходу дела: решения, тупики и то, как выглядит Maxler на этой неделе.
Автоперевод с русского — это язык, на котором я пишу.
Вопросы, на которые стоит ответить заранее
Я могу один вести весь фронтенд-слой целиком, и клиентскую часть, и admin/CRM-сторону, и принимать архитектурные решения там. Бэкенд я пишу и понимаю с помощью ИИ, этого хватает на что-то лёгкое вроде tg-notion-sync, но не на прод-бэкенд целого стартапа в одиночку. Тут лучше работать в паре с тем, кто ведёт его на постоянной основе.
Пока нет. Я пишу и понимаю бэкенд-код с помощью ИИ — схемы Prisma, API-роуты, небольшие сервисы, — но это лёгкий уровень, не прод-качество в одиночку. Назову себя фулстеком, когда поведу бэкенд так же, как веду фронтенд.
Я выпускаю по фазам: сначала рабочий MVP, потом итерации по тому, чем реально пользуются. Именно так прямо сейчас в открытую строится Maxler.
Нет, это моя собственная инициатива для реального локального бизнеса, чтобы прийти к ним с готовым продуктом. Проект ещё не закончен.
Я спроектировал и направлял разработку с Claude Code, а не печатал каждую строку сам. Я прочитал и понимаю в нём всё, и это то, что для меня важно.
Нет, этот код принадлежит компаниям, где я работал. Я подробно расскажу, что и почему делал, но не дам ссылку на репозиторий, который не мой.
Коротко
Я React-разработчик из Ташкента, пишу под именем Untra.dev. Два года продакшн-React в двух стартапах, почти всё время единственным фронтендером в команде — так я привык сам принимать решения и жить с ними.
В Noor, платформе доставки еды, я почти в одиночку построил админку для мерчантов и был основным архитектором гораздо более крупной внутренней операционной системы, пока не передал её сменщику, которого сам же ввёл в проект. До этого в Buchet.uz я был контрибьютором в админке сервиса доставки цветов и спроектировал в ней ролевую систему доступа с нуля.
Сейчас я по собственной инициативе строю Maxler, магазин и CRM для реального локального бизнеса спортивного питания. Vocabulary, открытый тренажёр слов, уже готов и лежит на GitHub.
Я ещё не senior, и бэкенд у меня пока не на уровне фронтенда. Закрываю оба пробела осознанно и пишу об этом процессе в Telegram-канале, а не только о готовых результатах.
Давай на связь
Telegram, там я реально читаю сообщения.
Или на почту: azizhonbahodyrov@gmail.com