← НАЗАД
Monolizovna / КЕЙСEN
Единственный разработчик · 2026 · Фриланс

Monolizovna

Сайт фотографа и собственная быстрая CMS.

Monolizovna.ru: портфолио петербургского фотографа и самописная CMS за ним. На публичной стороне насыщенная фотографиями редакционная витрина: архив работ, отзывы клиентов ровно в том виде, в каком пришли, форматы съёмки и тщательно подобранный гид «где снимать в городе». Загружается быстро: серверный Astro с ленивыми Preact-островами, инлайновый критический CSS и настроенный пайплайн изображений. Закрытая часть: полноценный админ, который я написал с нуля, где она редактирует работы, отзывы, цены, локации и даже тексты самого сайта, с перетаскиванием для сортировки и мгновенной публикацией. Всё сделал я один, от начала до конца, деплой на Docker с GitLab CI.

monolizovna.ru
Monolizovna photographer site home page
Solo
сайт + CMS
Astro 5
SSR + острова
~28KB
HTML, gzipped
8
разделов CMS
Astro 5SSR (node)Preact islandsTailwind v4PrismaSQLitejose (JWT auth)bcryptsharpZodExpressgrammy (Telegram)vk-ioDockerGitLab CI/CD
/ мой вклад

Что я построил.

Полное владение и архитектура

Написал сайт и CMS в одиночку, от начала до конца

Единственный разработчик: публичный сайт, админка, модель данных, деплой, всё моё. Astro 5 в режиме SSR с островами Preact (compat), которые гидратируются только там, где страница действительно интерактивна.

Компактная self-hosted CMS на Prisma + SQLite

Девять Prisma-моделей (работы и фотографии, отзывы, форматы, FAQ, локации, редактируемые тексты сайта, лиды, пользователь-администратор) обеспечивают CMS, достаточно маленькую, чтобы работать из одного SQLite-файла без какого-либо SaaS.

Авторизация с нуля

Подписанная JWT-сессия в httpOnly cookie через jose, хэшированные bcrypt-пароли, защита от брутфорса на логине и middleware-охрана каждого маршрута /admin и /api/admin. Без библиотек авторизации, без сторонних сервисов.

Производительность, настроенная вручную

~28KB gzipped HTML с инлайновым CSS

Критический CSS инлайнится, чтобы устранить блокирующий запрос: весь документ приходит примерно в 28KB gzipped и рисуется без ожидания дополнительного round-trip за стилями.

Убрал цепочки запросов, которые не нравились Lighthouse

Отключил modulepreload-подсказки, которые выстраивали цепочку Base → preload-helper → Lenis, и загружаю библиотеку плавного скролла по первому взаимодействию, так что ничто незначительное не блокирует критический путь.

Настоящий пайплайн изображений

sharp генерирует адаптивные AVIF/WebP-варианты с blur-up-плейсхолдерами, а LCP hero-изображение предзагружается через HTTP-заголовки, так что начинает скачиваться ещё до парсинга HTML.

SSR прямо в SQLite

Публичный сайт читает SQLite на каждый запрос, поэтому правка в админке публикуется мгновенно без инвалидации ISR-кеша, а ленивая гидратация островов держит отправляемый JS небольшим.

Админка

Восемь разделов, все в её руках

Работы, отзывы, FAQ, форматы съёмки, локации, тексты сайта, лиды и аккаунт: полноценный дашборд, а не лазейка для разработчика.

Перетаскивание для сортировки и загрузка фото

Работы и отзывы можно переупорядочивать перетаскиванием (sortablejs), переключать видимость на главной и загружать фотографии, которые обрабатываются на сервере через sharp.

Даже тексты редактируются как контент

Маркетинговые тексты на публичном сайте хранятся как редактируемые ключи site-text, поэтому она может переписать свои заголовки без деплоя.

Запуск и рост

Docker с настоящим CI-пайплайном

GitLab CI прогоняет lint → typecheck → build → image → smoke → deploy, продакшн-сервер Express с gzip и годовыми cache-заголовками для ассетов, за Caddy.

Автоматизация лидогенерации

Telegram-бот (grammy) ведёт воронку с PDF-подарком и присылает уведомления о новых лидах, с VK-интеграцией (vk-io) для аутрича.

/ продукт

Что умеет сайт.

Используют Фотография, Личный бренд и портфолио.

Редакционное фотопортфолио

Архив работ с фильтрацией и полноэкранным лайтбоксом, настроенный на скорость, несмотря на то что это сплошные фотографии.

Отзывы как есть

Настоящие скриншоты из мессенджеров, без правок, в карусели и полном архиве.

Форматы съёмки

Три пакета съёмки, каждый редактируется из админки без правки кода.

Гид «где снимать» по городу

Подборка и каталогизация локаций для съёмки в Санкт-Петербурге, у каждой своя страница.

Собственная CMS

Она сама редактирует каждый раздел: работы, отзывы, FAQ, цены, локации и маркетинговые тексты сайта.

Воронка лидов с ботами

Воронка с PDF-подарком, привязанная к Telegram-боту, и VK-интеграция для работы с клиентами.

/ экраны
Кураторский гид по локациям для съёмки в Санкт-Петербурге
Гид «где снимать» по городу
Раздел цен с тремя пакетами съёмки
Три формата съёмки
Страница архива работ
Архив работ
Отзывы клиентов в виде скриншотов из мессенджеров
Отзывы, ровно как пришли
Дашборд админки с количеством элементов в разделах
Дашборд админки
Менеджер работ в админке с перетаскиванием для сортировки
Менеджер работ с перетаскиванием

Живой клиентский сайт. Скриншоты админки работают на демо-контенте; настоящие лиды и личные данные не показаны.

Открыть сайт ↗← ВСЕ РАБОТЫ