Электронная коммерция выбирает React: уроки от Saleor и нового поколения витрин
Почему интернет-магазин 2024 года — это уже не просто каталог с корзиной
Ещё лет пять назад достаточно было выложить товары на сайт и подключить оплату. Сегодня всё изменилось. Покупатели хотят, чтобы страницы загружались мгновенно, всё работало без косяков на телефоне, а интерфейс напоминал приложение, а не страницу из 2010 года. Если ваш магазин не справляется с этими ожиданиями — вы уже теряете клиентов.
Хорошая новость: инструменты, которые есть у разработчиков сейчас, раньше казались фантастикой. Проект Saleor — отличный пример того, как выглядит правильно собранный e-commerce. Разберём, что именно они используют и почему.
React + Next.js App Router: компоненты на сервере
React никуда не делся и по-прежнему рулит. Его подход с компонентами позволяет собирать сложные интерфейсы из простых кусочков, а виртуальный DOM оптимизирует обновления. Но когда React работает в паре с Next.js и его App Router, возможности расширяются заметно.
App Router даёт файловую систему маршрутов — интуитивно и мощно. Server Components рендерят компоненты на сервере по умолчанию. Результат: на клиент уходит меньше JavaScript, страницы грузятся быстрее, а поисковики лучше индексируют каталог. Для магазина, где каждая секунда задержки — потерянная продажа, это не роскошь, а необходимость.
TypeScript: без него в серьёзном проекте никак
Если вы до сих пор пишете JavaScript в продакшене — остановитесь и подумайте. TypeScript ловит целые классы ошибок ещё на этапе компиляции, а не когда код уже у пользователей. Допустили опечатку в названии поля с ценой товара? С TypeScript об этом скажут сразу, а не после деплоя.
Плюс автодополнение работает как надо. Когда у вас в каталоге десятки полей у каждого товара — это экономит уйму времени и нервов.
GraphQL: забираем только то, что нужно
REST API верой и правдой служил годами, но GraphQL — это другой уровень коммуникации между клиентом и сервером. Вместо кучи эндпоинтов с жёсткой структурой вы запрашиваете ровно те данные, которые нужны прямо сейчас.
Возьмём сетку товаров на главной. С REST вы тянете описания, характеристики, отзывы — хотя для карточки нужны только название и цена. GraphQL решает эту проблему. Особенно это важно для мобильных пользователей: меньше данных — быстрее загрузка.
Tailwind CSS: стилизация без хаоса
Классический CSS превращается в кошмар, когда проект разрастается. Tailwind идёт другим путём: вместо написания кастомных стилей для каждого элемента вы применяете готовые утилитарные классы прямо в разметке.
Что получаем: прототипы создаются быстрее, стили унифицированы по всему проекту, а финальный CSS-файл ощутимо меньше за счёт tree-shaking. Для магазинов, которые постоянно тестируют A/B-варианты и обновляют дизайн к сезонам, это критически важно.
Что это всё значит для вашего проекта
Не обязательно писать всё с нуля. Saleor — опенсорсный проект, который можно взять за основу. Но важнее понять, почему выбраны именно эти решения, а не просто скопировать код.
Успешный e-commerce строится на трёх вещах: продуктивность разработчиков (чтобы фичи выкатывались быстро), UX (чтобы посетители становились покупателями) и поддерживаемость (чтобы через год не пришлось переписывать всё с нуля).
Конкретный стек вторичен. Важнее принципы: типобезопасность, запрос только нужных данных, производительность с первого дня, инструменты, с которыми удобно работать. Вот что отличает магазины, которые работают годами, от тех, что тихо умирают.
Собираете свой современный магазин? Инструменты готовы — осталось начать.