Все проекты

Публичный сайт WebEdge

Наш lt/en/ru сайт на Astro, контент из WebEdge CMS.

AstroTypeScriptTailwind
Скриншот публичного сайта WebEdgeDev-story
01

Задача

Хотели публичный сайт на трёх языках, синхронный с нашей же CMS, но отдаваемый как чистый статический HTML — без тяжёлого SPA, грузящего данные в рантайме.

02

Что делали

Astro собирает каждую страницу в статический HTML на билде; тексты и каталог проектов берутся из WebEdge CMS во время сборки, а типизированный фолбэк в репозитории держит сборку зелёной, когда CMS недоступна.

03

Результат

Редакторы правят контент в CMS, пересборка выкатывает новые статические страницы, и сайт продолжает собираться, даже когда CMS офлайн.

Dev-story статья

Публичный сайт WebEdge: как создавался проект

Витрина тянет тексты проектов из нашей CMS, но CMS постоянно уплывала: устаревшие флаги 'featured', уродливые авто-скриншоты и названия продуктов, которые нельзя показывать публично (бренды конкурентов, внутренние кодовые имена). Править 32 карточки вручную в CMS — не выход, нужен был источник правды, живущий в коде и проходящий ревью. Поэтому сборку переделали так, что выигрывает репозиторий, а CMS лишь закрывает пробелы.

Разделы

05

Модули

05

Стек

Astro + TypeScript

01

Почему появился проект

Хотели публичный сайт на трёх языках, синхронный с нашей же CMS, но отдаваемый как чистый статический HTML — без тяжёлого SPA, грузящего данные в рантайме.

Витрина тянет тексты проектов из нашей CMS, но CMS постоянно уплывала: устаревшие флаги 'featured', уродливые авто-скриншоты и названия продуктов, которые нельзя показывать публично (бренды конкурентов, внутренние кодовые имена). Править 32 карточки вручную в CMS — не выход, нужен был источник правды, живущий в коде и проходящий ревью. Поэтому сборку переделали так, что выигрывает репозиторий, а CMS лишь закрывает пробелы.

02

Что было создано

Astro собирает каждую страницу в статический HTML на билде; тексты и каталог проектов берутся из WebEdge CMS во время сборки, а типизированный фолбэк в репозитории держит сборку зелёной, когда CMS недоступна.

Статический сайт на Astro на литовском, английском и русском — маркетинговый фасад и портфельный каталог из ~32 проектов с отдельными страницами деталей. Контент берётся из CMS на этапе сборки и сливается с правками из репозитория; на выходе — чистый статический HTML без тяжёлого клиентского фреймворка.

03

Основные модули и путь пользователя

M01

Слияние с приоритетом репозитория: контент из репо (слоганы, теги технологий, обложка, флаг 'featured') перекрывает CMS, а не объединяется по ИЛИ с устаревшими значениями CMS

M02

Карта staticScreenshots, отдающая для каждого проекта закоммиченный cover.webp вместо авто-скриншотов из CMS

M03

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

M04

Сетка главной приведена к аккуратному 3x3 из девяти избранных проектов, управляемому флагом из репо, а не CMS

M05

Облегчённые карточки каталога: однострочные слоганы переписаны до <=81 символа с подстраховкой line-clamp-2, а вся глубина вызов/решение/результат перенесена на страницу деталей

04

Архитектура и технологические решения

Сделано на Astro, TypeScript, Tailwind.

Сделано на Astro; контент CMS забирается на сборке и сливается через резолвер с приоритетом репозитория; каждый проект несёт тексты EN/LT/RU, смысл которых согласован во всех трёх языках.

05

Результат и выводы

Редакторы правят контент в CMS, пересборка выкатывает новые статические страницы, и сайт продолжает собираться, даже когда CMS офлайн.

Сайт отдаётся как статический HTML с репозиторием в роли проверяемого источника правды, поэтому текст карточки, обложка и статус 'featured' меняются одним коммитом — без похода в CMS и без утечки устаревших данных в публичную сетку.

Читать дальше

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

Есть похожая идея?

Обсудить проект