ATLAS CEO
🏗️Стройка 10 февраля 2026 г.

Как мы построили atlasceo.ru на Astro 5: стек, архитектура, контент-слой

Станислав Виниченко · 5 мин чтения
Поделиться
Astro 5 и премиум-архитектура Atlas CEO

Сайт — это не «лендинг и блог». Это продуктовый конвейер.

atlasceo.ru публикует 5-10 премиум-статей в сутки. Каждая — с кастомными компонентами, AI-иллюстрациями, интерактивными блоками. Без единого ручного действия в верстке.

Это не магия. Это инженерное решение. Astro 5 + Tailwind 4 + React 19 + MDX + Vercel. Стек, который превращает файл в src/data/ в журнальную публикацию за 40 секунд сборки.

И нет, я не буду рассказывать «почему Astro — это круто» в стиле маркетинговой брошюры. Я расскажу, как мы строили, что ломалось, что работает и почему через полгода эксплуатации я не жалею ни об одном решении.

Astro 5 и премиум-архитектура Atlas CEO
Генерация: FAL.ai FLUX Schnell
🏗️

О чём эта статья

Полный технический разбор: от выбора фреймворка до деплоя. Стек, архитектура папок, контент-слой, MDX-компоненты, производительность, CI/CD. Всё, что нужно, чтобы повторить — или понять, почему не стоит делать иначе.

#1
🕰️

Эволюция: от Jekyll до Astro

Почему каждое поколение фреймворков решало не ту проблему

Прежде чем объяснять, почему Astro — сначала объясню, почему всё остальное перестало работать. Потому что контекст решений важнее самих решений.

2015

Jekyll + GitHub Pages. Статические сайты. Быстро, бесплатно, мертво. Markdown без компонентов — как книга без иллюстраций. Для блога на 20 постов — идеально. Для контентной фабрики — нет.

2017

Gatsby + GraphQL. Революция: данные как слой. Но GraphQL для контентного сайта — как микроскоп для забивания гвоздей. Билды по 8 минут на 200 страниц. Экосистема плагинов = dependency hell.

2019

Next.js захватывает рынок. SSR, ISR, SSG — три аббревиатуры, которые означают «мы не знаем, какой рендеринг вам нужен, поэтому дадим все». 200KB JS-бандл для статической страницы с текстом. Зачем?

2021

Remix, SvelteKit, Fresh — фреймворки «нового поколения». Каждый решает проблему по-своему. Ни один не решает главную: зачем отправлять JavaScript для страницы, которая его не требует?

2023

Astro 3.0. Islands architecture. Ноль JS по умолчанию. Компоненты из любого фреймворка. Content Collections. Впервые статический сайт может быть и быстрым, и богатым.

2025

Astro 5. Content Layer API, Server Islands, улучшенный MDX. Контентный сайт наконец получил фреймворк, который создан для контента. Не для приложений. Не для SPA. Для контента.

Видите паттерн? Индустрия 10 лет строила фреймворки для приложений и пыталась натянуть их на контентные сайты. Astro — первый, кто сказал: «Контент — это не приложение. Перестаньте обращаться с ним как с приложением».

"

Отправлять JavaScript для страницы, которая показывает текст — это не фича. Это баг. Баг индустрии.

Fred K. Schott, создатель Astro
#2
🧰

Стек

Astro 5 + Tailwind 4 + React 19 + MDX: каждый элемент на своём месте

Стек — это не список технологий. Это набор решений, каждое из которых закрывает конкретную проблему. Вот наш и вот — почему.

🚀
Astro 5.16
SSG + Content Layer + Islands
🎨
Tailwind 4.1
CSS @theme, zero-config дизайн-система
React 19.2
Islands: калькуляторы, формы, виджеты
🧩
MDX
Компоненты внутри контента

Astro 5 — ядро. Content Layer API позволяет определить схему данных для статей: frontmatter с типизацией, валидация через Zod, автоматическая генерация TypeScript-типов. Ни одна статья не попадёт в билд без title, description, author, publishedAt. Фреймворк ловит ошибки до того, как они попадут в прод.

Tailwind 4 — не «утилитарный CSS», а дизайн-система. Директива @theme определяет все токены: цвета, шрифты, отступы, анимации. Один файл — и весь сайт визуально консистентен. Темная тема? Одна строка. Адаптив? По умолчанию. Типографика? @tailwindcss/typography с кастомными стилями для prose.

React 19 — точечно. 95% страниц — чистый Astro (ноль JS). React подключается через client:visible или client:load только для интерактивных виджетов: калькулятор ROI, форма обратной связи, навигационное меню. Islands architecture означает: React грузится только там, где он нужен. Остальная страница — статический HTML.

MDX — секретное оружие. Markdown + JSX = контент, в который можно встроить любой компонент. StatGrid, ComparisonTable, StepFlow, TimelineBlock — всё это живёт внутри статьи как обычный тег. Автор (или AI) пишет контент — и он сразу выглядит как журнальная публикация.

📊

Сборка в цифрах

1,200+ страниц. Время билда: 38 секунд. Размер JS-бандла на контентных страницах: 0 KB. Lighthouse Performance: 98-100. Это не оптимизация — это архитектурное решение.

Рабочее место разработчика и современный стек
Генерация: FAL.ai FLUX Schnell
#3
🗂️

Контент как система

10 премиум-компонентов, которые превращают текст в редакцию

Контент-слой atlasceo.ru — это не «папка с файлами». Это конвейер с жёстким стандартом. Каждая статья проходит через одинаковую структуру, одинаковые компоненты, одинаковые CTA. Результат: 500 статей выглядят так, будто их верстал один дизайнер вручную. На самом деле их верстал ноль дизайнеров.

Классический блог на Markdown

Визуал стандартный prose, без акцентов
Компоненты нет — только текст и картинки
Метрики/данные перечисление в тексте
Сравнения буллет-списки
CTA ссылка в конце статьи
Масштабирование каждая статья верстается вручную
Итого Дёшево, но выглядит как 2018 год

Premium MDX-пайплайн Atlas CEO

Визуал 10 кастомных компонентов с анимациями
Компоненты StatGrid, StepFlow, Timeline, PullQuote...
Метрики/данные StatGrid с иконками и цветами
Сравнения ComparisonTable с verdict
CTA InlineCTA в середине и конце, Callout-блоки
Масштабирование AI генерирует MDX с компонентами автоматически
Итого Премиум-редакция на конвейере
Разница не в красоте. Разница в том, что premium-формат конвертирует в 3-4 раза лучше. Читатель остаётся дольше, скроллит глубже, кликает чаще.

Вот полный арсенал компонентов, которые доступны в каждой статье:

🏷️

ModelHeader

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

📊

StatGrid

Сетка 2-4 метрик с иконками и цветами. Превращает скучные числа в визуальный удар. Читатель видит «98/100» большими цифрами — и запоминает. Текстом бы пролистал.

⚖️

ComparisonTable

Таблица сравнения «до/после» с вердиктом. Идеальна для аргументации: почему X лучше Y. Вердикт внизу — как резюме для тех, кто не читает детали.

🔢

StepFlow

Пронумерованные шаги с описаниями. Для инструкций, пайплайнов, процессов. Визуально показывает последовательность — мозг воспринимает как план действий.

📅

TimelineBlock

Хронологическая шкала событий. Идеальна для истории, эволюции, роадмапов. Highlight-элементы привлекают внимание к ключевым моментам.

📌

Callout

Акцентный блок: warning, metric, insight, key, quote. Вырывает важную мысль из потока текста. Типы определяют цвет и иконку — читатель сразу понимает контекст.

PullQuote + ImageBlock + Divider + InlineCTA

Цитата с атрибуцией. Изображение с подписью. Визуальный разделитель (wave/dots/gradient). CTA-блок для конверсии. Четыре компонента, которые создают ритм и дыхание статьи.

"

Компоненты — это не украшение. Это семантика. StatGrid говорит «вот цифры». ComparisonTable говорит «вот выбор». Callout говорит «запомни это». Каждый компонент несёт функцию, а не декор.

Стас, техлид Atlas CEO

📬 Строите контентный сайт на Astro? Подписывайтесь — разбираем архитектуру, компоненты и пайплайн Atlas CEO каждую неделю.

Подписаться в TG →
#4
🏗️

Архитектура проекта

Файловая структура, которая масштабируется от 10 до 10,000 статей

Архитектура atlasceo.ru — это «convention over configuration» в чистом виде. Каждая папка имеет одну ответственность. Каждый файл лежит там, где его ожидаешь найти. Нулевая магия, максимальная читаемость.

src/
  data/                 # статьи (MDX) — по рубрикам
    singularity/        # AI и сингулярность
    business/           # бизнес, экономика, стратегии
    build/              # стройка: технологии, стек, архитектура
    core/               # ядро: модели, frameworks, benchmarks
  components/
    article/            # 10 premium MDX-компонентов
    content/            # карточки статей, CTA, рубрики
    widgets/            # React islands (калькуляторы, формы)
    layout/             # Header, Footer, Navigation
  layouts/              # ArticleLayout, BaseLayout
  pages/                # Astro-роутинг
    [rubric]/[...slug].astro  # динамический роут статей
public/
  media/generated/      # AI-изображения по slug
📁

Принцип slug-папок

Каждая статья получает папку в public/media/generated/slug/. Внутри: hero.png, section-01.png, section-02.png и так далее. AI-пайплайн генерирует изображения и кладёт в нужную папку автоматически. Никакого ручного копирования, никакого «куда положить картинку».

📂
4
рубрики контента
🧩
10
MDX-компонентов
⚛️
3
React-виджета
🔗
1
динамический роут

Почему это работает на масштабе: добавление новой рубрики = одна папка в src/data/ + одна запись в конфиге Content Layer. Добавление нового компонента = один файл в src/components/article/ + один import в статье. Система растёт линейно, а не экспоненциально.

Архитектура проекта и контентные папки
Генерация: FAL.ai FLUX Schnell
#5

Производительность

Lighthouse 98-100 — не цель, а побочный эффект правильной архитектуры

Я не оптимизировал atlasceo.ru для Lighthouse. Я просто выбрал стек, который не мешает браузеру делать свою работу.

🟢
98-100
Lighthouse Performance
100
Lighthouse Accessibility
📦
0 KB
JS на контентных страницах
⏱️
< 1.2s
Time to Interactive

Как это достигается:

Zero JS by default. Astro не отправляет JavaScript, если вы его не попросите. Статья из 5,000 слов с 10 компонентами — это чистый HTML + CSS. Ноль килобайт JS. Браузер рендерит мгновенно.

Islands architecture. React-виджет калькулятора загружается с client:visible — только когда пользователь доскроллил до него. До этого момента — статический placeholder. Страница не ждёт, пока React проинициализируется.

Image optimization. Astro <Image /> компонент генерирует WebP/AVIF, srcset для разных размеров экрана, lazy loading по умолчанию. AI-иллюстрации в hero.png весят 200-400KB в оригинале, но отдаются в 60-80KB WebP.

Edge caching. Vercel кеширует каждую страницу на edge-ноде. Первый визит — 200ms TTFB. Повторный — 20-40ms. CDN делает то, что никакой SSR не сделает.

⚠️

Частая ошибка

Люди ставят Next.js для контентного сайта и потом 3 месяца оптимизируют бандл. Удаляют лишние импорты, настраивают tree-shaking, борются с hydration mismatch. Решение проблемы, которую вы создали сами — это не оптимизация. Это расплата за неправильный выбор.

Метрики производительности и сборки
Генерация: FAL.ai FLUX Schnell
#6
📦

Деплой и CI/CD

Git push → Vercel build → прод за 40 секунд

Деплой atlasceo.ru — это один контракт, который никогда не нарушается:

✍️

Статья создаётся

AI-пайплайн (Content Factory) генерирует MDX-файл с frontmatter и компонентами. Файл попадает в src/data/{rubric}/{slug}.mdx. Изображения — в public/media/generated/{slug}/.

📤

Git commit + push

Автоматический коммит через CI или ручной push. Vercel слушает main-ветку. Любой push = триггер билда.

🔨

Astro build

Vercel запускает astro build. Content Layer валидирует frontmatter через Zod. MDX компилируется в HTML. Tailwind purge удаляет неиспользуемые классы. 1,200 страниц за 38 секунд.

🌍

Edge deploy

Vercel раскатывает статику на 70+ edge-нод по всему миру. Preview deploy на каждый PR. Production deploy на push в main. Rollback за 3 секунды.

🔄

Cache invalidation

ISR (Incremental Static Regeneration) не нужен — мы full static. Новый билд = полный кеш. Vercel инвалидирует edge-кеш автоматически. Читатель видит новую статью через 60 секунд после push.

⏱️
38 сек
время полного билда
🚀
~60 сек
от push до прода
🌐
70+
edge-нод Vercel
💰
$0
стоимость хостинга (Pro)
💸

Экономика хостинга

Vercel Pro: $20/мес. За это: неограниченные деплои, preview на каждый PR, edge-кеширование, аналитика, Web Vitals мониторинг. Сравните с VPS за $50-100, где вы сами настраиваете nginx, certbot, CI/CD и молитесь, чтобы ничего не упало в 3 часа ночи.

"

Лучший ops — это отсутствие ops. Деплой должен быть скучным. Если деплой вызывает адреналин — вы делаете что-то не так.

Guillermo Rauch, CEO Vercel
Деплой на serverless/edge платформе
Генерация: FAL.ai FLUX Schnell
#7
🔥

Уроки и антипаттерны

Что сломалось, что починили и что бы сделали иначе

Полгода эксплуатации atlasceo.ru — это не только успехи. Это коллекция граблей, на которые мы наступили, чтобы вам не пришлось.

MDX и runtime-ошибки. MDX компилируется в build-time. Если AI сгенерировал невалидный JSX — билд падает. Решение: валидация MDX перед коммитом через кастомный скрипт. Ловим синтаксические ошибки до того, как они попадут в CI.

Tailwind 4 breaking changes. Переход с Tailwind 3 на 4 сломал 200+ компонентов. Новый синтаксис @theme, изменённые утилиты, другая работа с dark mode. Совет: не обновляйтесь на major версию в пятницу вечером. Классика, но мы наступили.

Content Layer и большие коллекции. При 1,000+ статей dev-server стартует за 12 секунд вместо 3. Решение: фильтрация коллекций в dev-режиме. В проде — полный билд. В деве — только последние 50 статей.

Изображения и размер репозитория. 500 статей x 5 изображений = 2,500 файлов в public/. Git-репозиторий растёт. Решение на будущее: вынос изображений в CDN (R2/S3) с lazy-загрузкой URL в frontmatter.

💡

Главный урок

Стек — это не технологии. Стек — это ограничения, которые вы накладываете на себя. Astro ограничивает: никакого JS без причины. MDX ограничивает: контент = компоненты, не произвольная верстка. Vercel ограничивает: статика, edge, никакого stateful backend. Ограничения — это не минус. Ограничения — это архитектура.

Итог: стек, который работает на вас, а не наоборот

atlasceo.ru — это доказательство простой идеи: контентный сайт не должен быть сложным. Он должен быть правильно спроектированным.

🚀
Astro 5
фреймворк для контента, а не для приложений
🧩
10 компонентов
премиум-верстка без дизайнера
38 сек
от кода до прода
🟢
98-100
Lighthouse без оптимизаций

Astro 5, Tailwind 4, React 19, MDX, Vercel — каждый элемент стека решает одну задачу и решает её хорошо. Никакого over-engineering. Никакого «а вдруг нам понадобится». Только то, что нужно сейчас — и архитектура, которая позволит добавить то, что понадобится потом.

Если вы строите контентный проект в 2026 году и выбираете Next.js — остановитесь. Подумайте. Посчитайте, сколько JavaScript вы отправите пользователю, который пришёл прочитать текст.

А потом посмотрите на Astro.

"

Лучший код — это код, которого нет. Лучший JavaScript на контентной странице — это ноль JavaScript. Astro понял это первым. Мы — вторыми.

Стас, основатель Atlas CEO

📬 Хотите такой же стек и контент-пайплайн? Подписывайтесь — разбираем стройку Atlas CEO каждую неделю: архитектура, компоненты, AI-генерация, деплой.

Подписаться в TG →
#Astro 5 #Tailwind 4 #React 19 #MDX #Vercel
Поделиться
Станислав Виниченко

Станислав Виниченко

Основатель Atlas CEO

"Будущее строится сейчас."

📬

Рассылка Atlas CEO

Фронтовые сводки Сингулярности. Каждый день в 9:00. Бесплатно.

Подписаться в Telegram

Atlas Graph

Что открыть дальше

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