← Все проекты

Кейс · Сайт

Многостраничный сайт юридической компании

Реализованный сайт юридической и экспертной компании на Nuxt 4: 65 страниц с серверным рендерингом, JSON-LD разметка и 301-редиректы со старого сайта. Заявки уходят через серверный эндпоинт с проверкой Origin, лимитом размера тела и ограничением частоты запросов.

  • Nuxt 4
  • Vue 3
  • TypeScript
  • Bootstrap 5
  • Zod
  • Vitest
  • Playwright
  • Docker
  • GitHub Actions

01 · Как выглядит

Скриншоты

Скриншот проекта «Многостраничный сайт юридической компании» на экране 1280 пикселей
Десктоп, 1280 px
Скриншот проекта «Многостраничный сайт юридической компании» на экране телефона, 390 пикселей
Телефон, 390 px

02 · О проекте

Что это и зачем

Реализованный сайт юридической и экспертной компании на Nuxt 4: 65 страниц с серверным рендерингом, JSON-LD разметка и 301-редиректы со старого сайта. Заявки уходят через серверный эндпоинт с проверкой Origin, лимитом размера тела и ограничением частоты запросов.

Ограничения

Сайт клиентский: название и контакты клиента в текстах карточки не приводятся, на скриншотах виден сам сайт.

Скриншоты сняты с локальной сборки с заглушками окружения; формы не отправлялись.

Цифры и обещания из контента сайта (стаж, количество экспертиз, проценты) принадлежат клиенту и в карточке не цитируются.

Показана локальная копия репозитория, не самая свежая версия.

Что внутри

  • 65 маршрутов с SSR, sitemap.xml и robots.txt; индексация включается явным флагом окружения
  • Форма заявок: серверный эндпоинт, проверка Origin, лимит тела 10 КБ, 3 запроса за 10 минут с одного IP, honeypot, опциональная капча
  • JSON-LD: LegalService, WebSite, BreadcrumbList
  • Одношаговые 301-редиректы со старых URL и со слешей на конце, заголовки безопасности (CSP, HSTS)
  • CI/CD: lint, typecheck, Vitest, сборка, Playwright; затем Docker-образ и выкладка на сервер
  • 210 модульных тестов в 13 файлах и 4 набора e2e-тестов

03 · Как запустить

Запуск одной командой

npm install && npm run build && node .output/server/index.mjs
# NITRO_PRESET=node-server PORT=3310 NUXT_ALLOWED_ORIGIN=http://localhost:3310 NUXT_BITRIX_WEBHOOK_URL=http://127.0.0.1:9/ (заглушки; для разработки: npm run dev)

04 · Код

Репозиторий приватный

Исходники лежат в приватном репозитории. Открою доступ по запросу: напишите, и пришлю приглашение.

Запросить код