Макаров Тимофей Андреевич

Frontend-разработчик

Собираю сайты и сервисы от идеи до запуска: вёрстка под все экраны, анимация, 3D на Three.js, мобильные приложения на React Native, бэкенд и Telegram-боты. Ниже — живые демо, а не скриншоты: листайте и кликайте прямо здесь.

6сайтов онлайн
3проекта на Three.js
6Telegram-ботов
6языков: JS, TS, Python, Go, Swift, Kotlin

Сайты

живые демо — можно листать и кликать прямо в рамке
Коммерческий проект

PERSHIKOV — платформа аналитики крипторынка

Платная платформа автора-аналитика: обзоры рынка, торговые идеи, портфель и исследования по подписке, а рядом графики рынка, которые обновляются сами. Сделал от дизайна до запуска на сервере: вёрстку под телефон и компьютер, оплату подписки, закрытый доступ и админку, в которой автор ведёт сайт сам.

Next.jsReactTypeScriptPostgreSQLTailwind CSSCloudPaymentsnginx
  • Подписка на месяц и год: оплата картой, автопродление, чеки по 54-ФЗ
  • Платное закрыто на сервере: без подписки текст не попадает даже в код страницы
  • 9 графиков рынка: потоки BTC и ETH, ETF, фандинг, стейблкоины, ширина рынка, данные обновляются по расписанию
  • Админка, в которой автор сам публикует материалы и правит главную без программиста
  • Запуск на своём сервере: nginx, SSL, ежедневные бэкапы
PERSHIKOV: рабочий стол на компьютере PERSHIKOV: графики рынка на телефоне
Сайт не встраивается в чужие страницы, поэтому здесь скриншоты открытой части. Живой сайт — по кнопке «Открыть сайт».
Коммерческий проект

«Фасуем Про» — контрактная фасовка

Сайт производства из 63 страниц: услуги, оборудование, кейсы. На первом экране — продуктовый ролик: дой-пак собран кодом на Three.js, наполняется и запаивается морф-таргетами, стоит в студийном HDR-свете под постобработкой (SMAA, виньетка, хроматические аберрации), а всей сценой управляет скролл. Отдельная страница — интерактивный 3D-конструктор пакета.

HTML/CSS/JSThree.jspostprocessingLenisWebGLSEO-разметка
Прокрутите внутри рамки — пакет раскроется, наполнится и повернётся. Ещё есть 3D-конструктор на отдельной странице.
Коммерческий проект

Сайт детского психолога — adekvat.online

Многостраничный сайт практикующего специалиста: подход к работе, библиотека книг с живым поиском на JS, ответы на вопросы родителей, отзывы и запись на приём. Чистый HTML/CSS/JS без фреймворков и сборки — заказчик правит тексты сам.

HTML/CSS/JSбез фреймворковадаптивформы записи
Коммерческий проект

«Хотики» — hotiki.ru

Промо-сайт вселенной детской книги: анимированный мир персонажей целиком на CSS — маски, градиенты, keyframes, без единой библиотеки. История, магазин и переход в Telegram-сообщество. Адаптив с упором на мобильные: основная аудитория заходит с телефонов.

HTML/CSS/JSCSS-анимацияmobile-first
Свой продукт

StartL — лендинг для инвесторов

Дейтинг без свайпов: люди видят друг друга на живой карте города. Лендинг — 3D-сфера из 2 600 частиц на Three.js, которая перекрашивается под секции, хореография скролла на GSAP и инерционный скролл Lenis. Всё в одном HTML-файле, без сборки.

Three.jsGSAPLenisодин файл
В демо переключите тарифы радиуса: 50 м / 1 км / 10 км.
Свой проект

«Лесной квартал» — 3D-тур по дому

Промо-сайт дома в коттеджном посёлке: при скролле камера пролетает сквозь дом — прихожая, гостиная с камином, кухня, спальня, терраса с бассейном. Дом собран кодом на Three.js, все текстуры процедурные (рисуются на canvas), снаружи идёт гроза с дождём и молниями. Один HTML-файл без единой картинки.

Three.jsпроцедурные текстурыcanvasодин файл

Приложения и боты

работают на сервере и на телефоне — демо в рамку не встроить
Коммерческий проект

Приложение водителя — топливные карты

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

  • Оплата по QR СБП без эквайринга: сумма читается из динамического кода, списывает банк водителя
  • Регистрации нет — аккаунт заводит компания; вход по коду из СМС, коду доступа и биометрии
  • Пароль в приложении не живёт: после входа уезжает в системное хранилище устройства
  • Подпись запросов считает нативный модуль — Swift на iOS, Kotlin на Android; ключ в JavaScript не выходит
  • Карта АЗС на MapGL 2ГИС, маршрут открывается диплинком в приложении 2ГИС
  • Кассовый чек читается по QR ФНС: сумма, время, повтор и возврат видно сразу
  • Одна кодовая база на iOS, Android и веб
React NativeExpo SDK 57TypeScriptexpo-routerSwiftKotlinMapGL 2ГИССБПJWT
Свой продукт

StartL — рабочее MVP гео-знакомств

Не лендинг, а живое приложение: один Go-бинарник, внутри HTTP API, SQLite и PWA-фронтенд. Без внешних сервисов и без CGO — собирается и разворачивается где угодно.

  • Регистрация и вход: bcrypt, токен-сессии
  • Радар людей рядом: расстояние по формуле гаверсинуса, радиус зависит от тарифа
  • Чат 1:1 с хранением истории в базе
  • Чёрный список с двусторонней невидимостью
  • Демо-режим, если браузер не отдал геолокацию
Gonet/httpSQLitebcryptPWA
Коммерческий проект

VPS-бот — выдача и биллинг серверов

Клиент выбирает тариф в Telegram, оплачивает — бот сам создаёт машину, присылает IP и root-пароль и даёт кнопки управления. Весь путь заказ → оплата → сервер закрыт сквозным тестом.

  • Оплата: счета, зачисление, идемпотентные вебхуки
  • Питание, переустановка ОС, удаление и продление
  • Возврат на баланс, если сервер не поднялся — ровно один раз
  • Root-пароли зашифрованы в базе (AES-256-GCM)
  • Гипервизор за интерфейсом: Proxmox и имитатор взаимозаменяемы
TypeScriptNode.jsgrammYFastifyPostgreSQLZod
Свой проект

Бот автопоиска заказов с ИИ

Сам обходит фриланс-площадки, отсеивает мусор, оценивает оставшееся через LLM по шкале 1–10 и присылает карточку с кнопками «Отправить / Редактировать / Пропустить». Решение всегда за человеком.

  • Парсеры Freelance.ru, Kwork, Яндекс Исполнителей и Telegram-каналов
  • Двухступенчатый фильтр: жёсткие правила, затем ИИ
  • Дедупликация по паре «площадка + id», дублей не бывает
  • Журнал по каждому заказу: найден → оценён → черновик → отправлен
Pythonaiogram 3asyncioaiohttpBeautifulSoupTelethonSQLiteLLM API
Свой проект

Пул общих аккаунтов

Бот выдаёт аккаунт из общего пула одному человеку на 24 часа, потом сам забирает обратно. Задача интересна конкуренцией: десять человек могут нажать кнопку в одну и ту же секунду.

  • Атомарная выдача через BEGIN IMMEDIATE — двоим один аккаунт не достанется
  • Планировщик раз в минуту возвращает просроченные
  • Досрочный возврат кнопкой
  • Админка: добавление аккаунтов, статистика пула
Pythonpython-telegram-botAPSchedulerSQLite
Свой проект

Архив удалённых сообщений

Бот сохраняет входящие в личных чатах и, когда собеседник удаляет сообщение, присылает владельцу копию. Работает на официальном Telegram Business API, а не юзерботом на MTProto — аккаунту ничего не грозит.

  • Событие об удалении приходит без содержимого — нужен свой кэш текста и вложений
  • Правки показываются как «было → стало»
  • Владелец сам выбирает, какие чаты подключить
  • Автозапуск через launchd, логи на диск
Pythonaiogram 3Telegram Business APIaiosqliteDocker
Свой проект

Поиск компаний без сайта

Бот разбирает выгрузки OpenStreetMap и достаёт малый бизнес, у которого есть телефон, но нет сайта, — готовый список для холодных заходов по России, Беларуси и Казахстану.

  • Дампы .osm.pbf читаются потоком через osmium: файл на 4 ГБ в память не поместился бы
  • Ни ключей, ни квот — от Overpass отказался, на масштабе страны он отдаёт 504
  • Свои правила категорий: магазины, услуги, красота, авто, медицина; сети и госорганы отсеиваются
  • Один регион за ночь по расписанию — VPS в одно ядро
  • Выдача по фильтрам, в карточке — возраст правки OSM вместо недостижимого «работает / закрыто»
Pythonpython-telegram-botAPSchedulerosmiumSQLiteDocker
Свой проект

Цифровой след — проверка своих данных

Бот показывает, что видно о человеке из открытых источников: где занят его ник, в каких утечках светились почта и телефон, не всплывал ли пароль. Инструмент самопроверки.

  • Ники по ~500 сайтам (Maigret), результаты приходят по мере готовности, а не пакетом в конце
  • Утечки по почте и телефону: факт и категории полей — сами значения не показываются
  • Пароль проверяется по k-anonymity: наружу уходят пять символов хеша, сообщение удаляется
  • Генератор поисковых запросов по открытым источникам: Google, Яндекс, GitHub, пасты
  • Граница проведена сознательно: сервисы-оповещения об утечках — да, краденые базы — нет
Pythonaiogram 3MaigretLeakCheckHIBPIntelXsystemd
Свой проект

Аудит сайта по 152-ФЗ

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

  • Наблюдения отдельно от выводов: детекторы видят разметку, оценку делает отдельный модуль
  • Ни одна строка отчёта не обвиняет владельца в нарушении — автоматический сканер этого знать не может
  • У каждой находки своя уверенность, в отчёт уходит только высокая
  • Сайты, рисующие формы скриптом, помечаются отдельно — иначе наивный сканер сообщит об отсутствии всего сразу
  • Вежливый загрузчик: robots.txt, таймауты, разбор кодировок, проверка сертификата
Python 3.12httpxselectolaxSQLite