EN Переключить на английский

Александр Сопильник

Создаю приложения, чиню сломанные или сгенерированные нейросетью | TypeScript, React, Rust

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

Написать в TelegramEmail

Работы

Торговый терминал по выборам — бэкенд на Supabase

Бэкенд на Supabase для команды, которая торгует на рынках прогнозов о выборах. Функции на TypeScript по расписанию сохраняют снимки стакана заявок Kalshi, находят новые рынки по выборам, готовят черновики профилей кандидатов и предупреждают команду о важных изменениях. LLM (Qwen) раз в час пишет для трейдеров сводки по выборам и оценивает комментарии на YouTube. Кроме того, в проекте есть лента новостей, подготовка RAG на pgvector и CI на каждый push в main.

Supabase · PostgreSQL · TypeScript · Deno · pgvector · Qwen

Formline Admin — панель управления

В панели обрабатывают заказы, ведут каталог и следят за наличием товаров. У сотрудников разные права доступа, а вход можно защитить двухфакторной аутентификацией. Каждый посетитель без регистрации получает свою песочницу. Песочницы разделены политиками RLS в PostgreSQL.

Next.js · TypeScript · PostgreSQL · Drizzle · Docker

Formline — магазин постеров

Витрина с фильтрами по коллекциям, корзиной и оплатой через Stripe в тестовом режиме. Сайт на английском.

Next.js · TypeScript · Tailwind · Stripe

Bookkeeper Tweaks — расширение для Chrome

Четыре небольших улучшения страниц Xero для бухгалтеров. Кнопка Approve выполняет выбранное действие. Счёт печатается без скачивания PDF. Над длинными списками появляется навигация. Результаты Find and recode сортируются по описанию. Расширение работает в браузере. Оно ничего не отправляет ни разработчику, ни третьим лицам. Интерфейс на английском. Не связано с Xero.

TypeScript · Manifest V3 · Vitest · Playwright

reqwest-rotate — Rust-крейт

Ротация прокси и лимитов запросов для reqwest.

Услуги

Создаю

Сайты и веб-приложения от $80

Адаптивный сайт, который быстро загружается и после сдачи принадлежит вам. Интерфейс проектирую сам, а код пишу вручную на React или Next.js. Если нужен бэкенд, делаю его на Node.js или Rust. Код попадает в ваш репозиторий, а сайт — на ваш хостинг и в ваши аккаунты. Никакой привязки к конструктору и никакой ежемесячной платы мне.

По стартовой цене
одностраничный адаптивный сайт с вашим контентом, опубликованный в интернете: лендинг или визитка.
Больший объём
добавлю страницы, формы, панель администратора, базу данных и другое.
Фронтенд по макету Figma от $60

Дизайн и бэкенд у вас уже есть, но нет того, что видит пользователь. Я верстаю экраны из Figma на React или Next.js с TypeScript. Вёрстка адаптивная, от телефона до десктопа. Готовые экраны подключаю к вашему API. У каждого экрана есть состояния загрузки, пустого списка и ошибки. Отступы, размеры шрифтов и цвета беру из файла Figma.

По стартовой цене
один экран из вашего файла Figma — адаптивный, типизированный и подключённый к вашему API.
Больший объём
больше экранов, формы с валидацией, вход через ваш сервис аутентификации, общие компоненты и тесты основных сценариев.
Мобильные приложения для Android и iOS от $100

Мобильное приложение, которое использует общий код с вашим веб-продуктом, или первое приложение для проверки идеи. Я пишу его на React Native с TypeScript: одна кодовая база работает на Android и iOS. Подключаю приложение к вашему бэкенду. Передаю сборки, готовые к тестированию и публикации в магазинах приложений. Публикация идёт с ваших аккаунтов разработчика под вашим именем. Код остаётся в вашем репозитории.

По стартовой цене
до трёх экранов с навигацией и данными из вашего API в сборке для Android, готовой к установке.
Больший объём
больше экранов, вход через ваш бэкенд, push-уведомления, работа основных экранов без сети, сборки для iOS через TestFlight. Финальные сборки готовы к отправке в Google Play и App Store.
Десктопные приложения для Windows, macOS и Linux от $120

Десктопное приложение нужно, когда работа идёт на самом компьютере, а не в браузере. С ним файлы не покидают офис. Команда открывает приложение каждое утро. Без интернета ничего не останавливается. Я делаю такие приложения на Rust с интерфейсом на Tauri.

По стартовой цене
одно приложение до трёх экранов для платформы на ваш выбор. Рабочая сборка уже на раннем этапе, исходный код — в вашем репозитории.
Больший объём
сборки для всех трёх систем, локальная база данных с поиском, автоматические обновления, установщики. Обмен данными через файлы CSV или Excel.
Расширения для Chrome от $40

Полезное расширение делает что-то одно, но хорошо: например, сохраняет то, что вы смотрите, или собирает цифры со страницы. Новые расширения я пишу на JavaScript или TypeScript под Manifest V3. Существующие тоже чиню, если они сломались после обновления Chrome или редизайна сайта. Переношу расширения с Manifest V2, который Chrome Web Store больше не принимает. Для каждого разрешения объясняю, зачем оно нужно. Публикация идёт с вашего аккаунта разработчика.

По стартовой цене
исправление одной воспроизводимой проблемы в вашем расширении с объяснением причины.
Больший объём
новое расширение до пяти экранов с сохранением настроек, перенос существующего расширения на Manifest V3, версии для Firefox и Edge, готовая к отправке страница в Chrome Web Store.

Чиню и улучшаю

Исправление ошибок в JavaScript, React, Node.js и Next.js от $25

Что-то в вашем проекте сломалось или стало работать медленнее. Я воспроизвожу ошибку, нахожу причину и исправляю её. Затем записываю, что было не так, что изменилось и как я это проверил. Исправление передаю в виде pull request, патча или правки на рабочем сайте — как вам удобнее. Проекты, которые начинал кто-то другой, тоже беру.

По стартовой цене
одна воспроизводимая ошибка — найдена, исправлена и объяснена.
Больший объём
больше исправленных ошибок с письменным отчётом и списком других проблем, которые я заметил.
Доводка сгенерированных нейросетью приложений до запуска от $40

Когда вы проверяете приложение сами, всё работает, но нет уверенности, что оно выдержит настоящих пользователей и настоящие платежи. Работаю с приложениями, собранными в Lovable, Bolt, Cursor или v0. Нахожу всё, что ломается, допускает утечки данных или мешает запуску. Исправляю это в вашем коде, не переписывая с нуля. Начинаю с мест, где сгенерированный код обычно слабее всего. Это правила доступа к базе данных, секретные ключи в браузере, вебхуки платежей и обработка ошибок.

По стартовой цене
письменный отчёт перед запуском. В нём все проблемы по степени серьёзности: где каждая, чем опасна и как её исправить.
Больший объём
исправления из отчёта, каждое отдельным коммитом в вашем репозитории. Тесты входа и оплаты. Воспроизводимое развёртывание без конструктора.
Ускорение приложений на React и Next.js от $75

Ваше приложение теряло скорость релиз за релизом. Я измеряю, какие проблемы на самом деле отнимают время у ваших пользователей. Затем исправляю их. Вы получаете таблицу замеров по каждому маршруту до и после моих правок: LCP, CLS, INP, размер бандла. Оба замера делаются на одинаково замедленном соединении. Работа идёт в ветке вашего репозитория, коммит за коммитом.

По стартовой цене
аудит одной страницы, а затем исправления, которые улучшают эти показатели.
Больший объём
больше маршрутов, настройка рендеринга и кэширования. Бюджет размера бандла в CI, чтобы следующий релиз незаметно не свёл эту работу на нет.
Перенос старого фронтенда на React или Next.js от $60

Ваш фронтенд всё ещё работает на jQuery, старых классовых компонентах или устаревшей версии Next.js. Даже простые правки отнимают слишком много времени. Я переношу фронтенд на современный React или Next.js с TypeScript постранично, не останавливая продукт. Старый и новый код работают рядом. Адреса страниц и бэкенд не меняются. Каждая страница переходит на новый код, только когда вы решите.

По стартовой цене
письменный план миграции и одна небольшая страница, перенесённая в качестве образца.
Больший объём
больше перенесённых страниц, общие компоненты, типы TypeScript для данных и тесты основных сценариев.
Сайты на WordPress и WooCommerce от $25

Создаю новые сайты на WordPress и магазины на WooCommerce. Тему делаю под ваш дизайн или по образцу сайта, который вам нравится. Оформление заказа в WooCommerce настраиваю под ваших покупателей. Панель администратора будет простой: ваша команда сама добавит страницы и товары без помощи разработчика. На существующих сайтах исправляю то, что сломалось после обновления. Ускоряю медленные страницы и оформление заказа. Переделываю страницы, которые стало трудно редактировать.

По стартовой цене
одна воспроизводимая проблема на вашем WordPress-сайте — найдена, исправлена и объяснена.
Больший объём
новый сайт или магазин на WooCommerce по вашему дизайну. Все нужные страницы и формы, развёртывание на вашем хостинге.

Бэкенд и инфраструктура

Бэкенд-сервисы и API на Rust от $50

Пишу REST API на axum. Делаю воркеры, которые обрабатывают файлы или очереди. Связываю вашу систему со сторонним API через сервис-прослойку. К каждому сервису прилагаются тесты и README. Исходный код лежит в вашем репозитории.

По стартовой цене
один сервис до трёх REST-эндпоинтов. Другой вариант — воркер, который читает ваши файлы или уже существующую очередь.
Больший объём
больше эндпоинтов с PostgreSQL, аутентификация по токену с ролями, фоновый воркер, Docker. CI собирает и тестирует проект при каждом push.
Бэкенды на Node.js с Express или NestJS от $60

Пишу REST API для вашего сайта или мобильного приложения. Работаю на Node.js с TypeScript, фреймворк — Express или NestJS. Делаю воркеры для загруженных файлов и очередей заданий. Подключаю сторонние API. Данные храню в PostgreSQL, MongoDB или Redis. У каждого эндпоинта есть проверка входных данных и тесты.

По стартовой цене
до трёх REST-эндпоинтов или один воркер. К ним — проверка входных данных, тесты и README.
Больший объём
больше эндпоинтов с PostgreSQL или MongoDB. Аутентификация по токену с ролями пользователей, воркер очереди, Dockerfile и CI.
Безопасность на уровне строк в PostgreSQL от $40

Если доступ к строкам в базе контролирует только код приложения, одной забытой проверки хватит, чтобы пользователь увидел чужие данные. Я переношу контроль доступа в сам PostgreSQL. Для этого пишу политики безопасности на уровне строк (RLS) и роли. Тесты доказывают, что защита работает. Те же политики подходят для Supabase: он построен на PostgreSQL.

По стартовой цене
проверка политик до пяти таблиц. Отмечу, где политик не хватает. Для каждой бреши — запрос, который её показывает.
Больший объём
политики и роли для большего числа таблиц в виде миграций. Тесты от имени разных пользователей с прогоном в CI. Ограничения тарифных планов на уровне базы данных.
Docker и CI/CD для вашего приложения от $30

Если приложение запускается только на одном ноутбуке и выкладывается вручную, я упаковываю его в Docker. Добавляю пайплайн в GitHub Actions или GitLab CI. При каждом push он запускает линтер, тесты и сборку. Настраиваю развёртывание из репозитория на ваш сервер или платформу. Ключи и токены хранятся в секретах CI, а не в коде. В README описано, как запустить, выкатить и откатить приложение.

По стартовой цене
Dockerfile для продакшена, compose-файл для локального запуска и README.
Больший объём
пайплайн на каждый push и pull request. Автоматическое развёртывание при каждом слиянии: на ваш Linux-сервер, Railway, Fly.io или Vercel.
Консольные утилиты на Rust от $40

Утилиты на Rust, избавляющие от необходимости выполнять одни и те же задачи вручную каждую неделю. Например, проверить или преобразовать файлы. Массово переименовать их и разложить по папкам. Забрать данные из API в файл CSV или JSON. Утилита может запускаться по расписанию и отчитываться о сделанном. Это один бинарный файл: на компьютер ничего не нужно устанавливать дополнительно. Большие файлы она обрабатывает быстро.

По стартовой цене
одна утилита до трёх команд, работающая с CSV и JSON. Тесты, README и бинарный файл для вашей платформы.
Больший объём
больше команд, файл конфигурации с проверкой, параллельная обработка с индикатором прогресса. Бинарные файлы для Windows, macOS и Linux, настроенный выпуск релизов.

Как я работаю

Контакты

Отвечаю в тот же рабочий день, с понедельника по пятницу, 10:00–20:00 по времени Алматы (UTC+5).