Никита Горелов
На главную

Сайт-портфолио с кабинетом владельца

Собственный проект. Собрал сайт, на котором можно показать работы, получить заявку и обновить контент без правки кода.

Обсудить сайт
Главная страница сайта · октябрь 2026
Главная страница сайта · октябрь 2026

Задача

Объединить портфолио, услуги и приём заявок. Управлять содержимым и обращениями из одного кабинета, сохранив быстрые публичные страницы на русском и английском.

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

  • Показывает услуги, цены, изображения и видео; работает на телефоне и компьютере, на русском и английском.
  • Принимает заявки через форму и сохраняет их в базе.
  • Отправляет заявку на почту, а в Telegram только номер и ссылку на кабинет. Есть и прямая связь в Telegram.
  • В кабинете: поиск заявок, статусы, заметки, продление хранения и повтор неудачной доставки.
  • Позволяет редактировать тексты, загружать изображения и менять доступные настройки разделов через кабинет. Изменения сначала сохраняются в черновик, затем публикуются после предпросмотра.
  • Сохраняет историю изменений и создаёт резервные копии.

Редактирование через кабинет

Редактор на Puck позволяет переставлять разделы, добавлять текстовые блоки и галереи, менять изображения, цвета и шрифты. Есть просмотр для компьютера, планшета и телефона, масштабирование и отмена изменений.

Редактор в изолированной тестовой среде. На экране демонстрационный контент.
Редактор в изолированной тестовой среде. На экране демонстрационный контент.

Черновик → предпросмотр → публикация

Сохранение не меняет публичный сайт. Сначала можно проверить черновик, затем отдельно опубликовать его. История позволяет вернуть предыдущую версию в черновик.

Текущий стек

ЧастьСейчас используется
ФронтендReact, TypeScript, HTML/CSS; сборка Vite
БэкендPython, Flask; Node.js для сборки статических страниц
База данныхSQLite
УведомленияSMTP, Telegram Bot API, фоновые очереди доставки
Управление сайтомКабинет владельца и визуальный редактор Puck
РазмещениеVPS Selectel, Ubuntu, Caddy, HTTPS

Защита и копии

HTTPS; пароль и двухфакторный вход в кабинет; ограничение частоты запросов и попыток входа; защита изменений от CSRF. Можно настроить автоматическое резервное копирование с сохранением в выбранном хранилище.

Что можно добавить под задачу заказчика
ПотребностьВозможное расширение
Больше заявок и одновременных пользователейPostgreSQL, индексы и настройка запросов; распределение обработки между работниками
Длительные или массовые задачиCelery с Redis или RabbitMQ, отдельные фоновые обработчики
Много фото, видео и документовS3-совместимое файловое хранилище, CDN
Несколько сотрудников или личные кабинеты клиентовРоли и права доступа, назначение ответственных, файлы и комментарии по проектам
Учёт продаж и отчётностьИнтеграция с CRM, выгрузка в таблицы, аналитика заявок
Другой стек или интерфейсVue/Nuxt или Next.js для фронтенда; FastAPI, Node.js/NestJS или PHP/Laravel для бэкенда
Макет перед разработкойFigma для экранов и прототипа, Photoshop для подготовки изображений

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

Границы проекта

Кабинет рассчитан на одного владельца. Редактор работает с готовыми адаптивными блоками, а не со свободным рисованием макета. Максимальная нагрузка не измерена; рост продаж или числа заявок этим кейсом не подтверждается.

Нужен сайт под вашу задачу?

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