Все работы

Сайт Артема Артемова

Node.js · React · Docker / 2026
Первый экран сайта Артема Артемова: имя в стиле Silent Hill и портрет
Путь ролика от загрузки до сайта
  1. 01Перетаскивание в админке
  2. 02Проверка сигнатуры файла
  3. 03ffmpeg в фоне
  4. 04WebM + MP4
  5. 05Плеер на сайте

0

рантайм-зависимостей у сервера

WebM + MP4

сжатие видео при загрузке

RU / EN

смена языка без перезагрузки

Работает сейчасtemak1n-portfolio.xyz

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

Что требовалось

Монтажёру нужен был сайт, который сам по себе показывает вкус, а не шаблон конструктора. И чтобы ролики, тексты и заявки он вёл сам, без разработчика под каждую правку.

Что я сделал

  • Атмосферный лендинг: туман, побитая кафельная стена, работы как инвентарь, кейсы как журнал с 3D-перелистыванием. Анимации только на transform и opacity, без лагов при прокрутке
  • Админка - это тот же лендинг: текст правится прямо на странице, ролики перетаскиваются в слоты. Черновик, отмена, 40 версий истории и защита от затирания правок из соседней вкладки
  • Сервер на Node без единой рантайм-зависимости: контент, заявки, загрузки, сессии, лимиты на вход и на отправку формы
  • Сжатие медиа через ffmpeg в фоне: фото в WebP, видео в WebM VP9 и запасной MP4 для старых iPhone, прогресс кодирования виден в админке
  • 152-ФЗ: политика и согласие с автоматическими версиями, без согласия форма не уходит, заявки хранятся только на сервере и удаляются по сроку
  • Английская версия: язык меняется под туманом без перезагрузки страницы. Плашка cookie с равноценной кнопкой отказа
  • Docker Compose: Node с ffmpeg, nginx и HTTPS от Let's Encrypt с автопродлением

Что получилось

Сайт работает на temak1n-portfolio.xyz. Контент, работы и заявки владелец может вести сам через админку, разработчик для этого не нужен.

Что показывает этот кейс

Нестандартный визуальный проект целиком: от концепции и производительной анимации до своей CMS и продакшен-сервера.