Лига А.
Обновили свой собственный сайт, чтобы он оставался современным и шёл в ногу со временем, как и мы. Занялись админкой, создали несколько анимаций и сохранили маскота

О компании
Почему кубик стал секвенцией, динозавр пасхалкой, а админка спасением для разработчиков
Мы постоянно делаем сайты клиентам, они — наш приоритет и большая любовь. Но мы так увлеклись, что совершенно не могли найти время на обновление собственного сайта. Он был на старых технологиях, на нём не было даже админки. Чтобы поменять картинку или добавить статью, разработчики лезли в код, правили, пересобирали и деплоили. В один момент мы решили, что так дело не пойдёт, и запилили новый сайт. Не для галочки, а чтобы самим было удобно. Да и вообще, не хотелось быть сапожниками без сапог.
Рассказываем, что и как мы делали, с какими вызовами столкнулись и что из этого вышло.

Команда и сроки
Сначала на проекте было два разработчика — один отвечал за фронтенд, другой за бэкенд. Плюс один тестировщик. Они сверстали сайт, посадили его на админку и провели основные тесты. А потом ребят поглотили другие задачи, и наш проект на какое-то время встал на паузу — мы смеёмся, что ему просто надо было постоять, как хорошему вину. Но бесконечно откладывать работу тоже было нельзя: мы определили желаемую дату выхода в продакшн, и к работе подключились ещё трое разработчиков на фронт. Ребята оттачивали анимации, докручивали технические решения, тестировали наполнение сайта контентом, работали над SEO.
Словом, сайт по чуть-чуть делала чуть ли не вся команда: кто-то подключался сразу, кто-то попозже.

Старый сайт честно отслужил своё — он рассказывал о нас с 2021 года. Мы делали его на Pug и на чистом JavaScript без TypeScript. Это была крепкая сборка для своего времени, но технологии для проектов клиентов у нас давно обновились, а на нашем сайте — нет.
Главные боли:
- Не было админки. Любое изменение контента требовало участия разработчика. Статьи, картинки — всё вставлялось руками в код. Разработчик сам правил, коммитил и деплоил. На это уходило время, которое можно было потратить на клиентские проекты.
- Устарели технологии. Pug — это шаблонизатор, чувствительный к отступам. В больших файлах это повышает риск случайных ошибок в вёрстке и замедляет работу: приходится тратить время на поиск лишнего пробела вместо того, чтобы заниматься логикой. Поэтому технологию редко используют в новых проектах.
- Возникал риск ошибок. Без TypeScript было легко упустить баг при обновлении общих компонентов. Когда над сайтом работают несколько человек, отсутствие типизации усложняет чтение кода. Приходилось тратить время на ручные проверки там, где современные инструменты делают всё автоматически за секунды.
- Сайт не транслировал наш уровень. Мы делали клиентам крутые проекты на современном стеке (взять те же Next.js, React или TypeScript), а у самих был устаревший сайт. Он был надёжным для своего времени, но больше не показывал спектр наших возможностей. Клиенты могли засомневаться: точно ли мы предложим современные решения, если сами используем стек прошлых лет.
Стало неудобно перед самими собой. Изменения стали необходимостью. Мы хотели сделать наш сайт строже, чище, чуть серьёзнее, но с отсылками к нам в прошлом — нам было важно сохранить преемственность, но показать, что мы стали взрослее.
Мы законнектились с дизайн-студией UXART — визуальная часть была на них. Дизайн делали постепенно: созванивались, обсуждали, вносили правки, придумывали новые фишки. Мы не торопили наших партнёров. У нас не было горящих сроков, нам было важнее сделать хорошо, а не быстро.
Мы хотели чистый, понятный, быстрый сайт, где:
- всё логично лежит;
- легко найти информацию;
- анимации не отвлекают, а дополняют смыслы;
- нет ничего лишнего.
Главная метафора — кубик на главной странице. Он олицетворяет нашу компанию. Клиенты приходят в Лигу с разными задачами. Им не нужны отдельные команды под каждый блок — им нужен единый партнёр. Это и есть Лига: цельный кубик из множества кусочков.

Второй важный смысл — преемственность. Мы оставили динозавра (маскота со старого сайта) в футере. Это отсылка к нашей истории и стартапной атмосфере, в которой мы выросли. Мы решили, что динозавр будет развиваться и дальше: скоро создадим с ним игру. Это весело, а ещё так мы снова покажем клиентам, что мы умеем не только сайты, но и игры.

Процесс и решения
Технические решения: что сделали и почему
Технологии мы выбирали не для красоты, а для пользы. Нам нужен был сайт, который современно выглядит, быстро работает, удобно управляется и легко развивается. Всё получилось.
Перешли на Next.js
Это современный фреймворк, который даёт отличную производительность из коробки и решает проблемы с SEO. Серверный рендеринг, скорость, индексация — всё на уровне. Плюс это индустриальный стандарт, на котором мы делаем большинство клиентских проектов.
Сделали админку на Strapi
Strapi — это популярная, гибкая CMS, но Лига никогда с ней не работала. Мы решили попробовать её на своём проекте, где нет дедлайнов и рисков. Это был факультатив: прокачать компетенции команды и проверить инструмент в бою.
Подключили TypeScript
Это надстройка над JavaScript, которая ловит ошибки ещё в редакторе и сообщает, если мы передаём данные не туда. Что-то вроде второй пары глаз. Плюс на этапе сборки, если мы что-то сделали не так, проект просто не соберётся. Меньше рисков случайно сломать всё в продакшене. Работать с TypeScript приятнее и безопаснее, особенно когда проект ведут несколько человек.
Главные фишки: где мы постарались
Спойлер: мы не изобретали велосипед. Но там, где могли сделать «как все», мы делали «как мы». И постарались, чтобы наш сайт работал и был стильным — как мы любим.
Кубик на главной
На главной странице должен был быть эффектный 3D-кубик из частиц. Дизайнеры сделали его в Spline, мы подключили модель. Красиво, но на мобилках тормозило, а у разработчиков не было доступа к редактору, чтобы поправить модель.
Решение нашли не в 3D, а в мультипликации: сделали секвенцию из 24 кадров — как в старых мультфильмах. Дизайнеры нарезали видео, мы собрали покадровую анимацию. Визуально — тот же объём, а производительность отличная даже на слабых телефонах.
Динозавр в футере
На старом сайте динозавр был прелоадером. На новом мы переместили его в футер. Наш маскот перебирает задними лапами и рычит, рыцарь на нём двигается, а флаг развевается. Словом, ничего не стоит на месте, как и мы. В планах создать игру, чтобы динозавр зажил новой жизнью, а мы отразили весь наработанный опыт создания игр.
Интересный факт: в макете было только одно статичное изображение. Остальные три мы создавали сами: вручную двигали лапы динозавра, щит и флаг рыцаря. Медитативное занятие для разработчиков.

Карточки отзывов и проектов
Раньше карточки просто переключались — сейчас это кажется скучным и плоским. Мы всё поменяли, так что при нажатии карточка плавно расширяется и заполняется цветом. Тактильно приятно, глаз радуется. Механика простая, но сразу оживляет интерфейс.

Админка на Strapi
Это, наверное, самое главное, что изменилось для команды. Мы уже говорили, что раньше все изменения на сайт должен был вносить разработчик — мы обращались к нему даже ради всего одной запятой. Теперь же контент-менеджер заходит в админку, нажимает пару кнопок — и всё готово.
Плавный скролл
Добавили библиотеку Lenis, которая делает скролл шелковистым. Сайт не дёргается и не тормозит. Это мелочь, но именно из таких мелочей складывается ощущение хорошего сайта.
Доступность для поисковиков
Мы сделали так, чтобы поисковики видели все отзывы и проекты сразу — даже те, что скрыты под кнопкой «Показать ещё». Раньше эти блоки для роботов не существовали. Мы же превратили кнопку в полноценную ссылку: поисковики переходят по ней и индексируют весь архив. Плюс мы прописали редиректы со старого сайта, чтобы не потерять позиции. И результат не заставил себя ждать: после релиза просмотры выросли на 30%. Скачок есть.

Цветные логотипы
Обычно на сайтах логотипы технологий делают чёрно-белыми, а при наведении они становятся цветными. Мы решили иначе: у нас логотипы цветные сразу, чтобы блок выглядел ярко и живо. А если навести мышку, появляется название. Так блок выглядит оригинально, а интерактив с названием добавляет полезной информации без лишних кликов.

Strapi: как мы учились новому на своём сайте
Когда мы выбирали CMS для админки, сомнений не было — хотим попробовать Strapi. Это популярная, гибкая, современная CMS, которая автоматически создаёт бэкенд и все нужные адреса для получения данных (API). То есть нам не пришлось писать их с нуля — достаточно было через интерфейс задать структуру данных, и Strapi сразу отдавала эти данные на сайт.
Почему это удобно для разработки: мы получаем работающий бэкенд «из коробки», с встроенной админкой, автоматическим CRUD (создание, чтение, обновление, удаление) и гибкой расширяемостью. Это заметно ускоряет разработку и избавляет от рутины.
Но есть один нюанс: до этого проекта Лига никогда не работала со Strapi. Мы решили, что пора это исправить. Клиентских проектов со Strapi у нас не было, и это был идеальный шанс прокачать компетенции на себе, без рисков и дедлайнов. Если что-то пойдёт не так — никто не пострадает, мы просто разберёмся и переделаем.
Особенности платформы познавали прямо в процессе: параллелили работу и обучение, консультировались с ChatGPT.
Strapi нам понравился. Для контент-менеджеров это удобная и независимая от разработчиков среда управления контентом: можно создавать и редактировать страницы, статьи, товары и другие сущности через понятную админку без участия программиста.
Здесь всё устроено иначе, чем в классических CMS вроде WordPress или Битрикса. Этот инструмент позволяет компоновать контент произвольным образом, как тебе удобно. Если не нужна цитата — ты её просто не добавляешь. В старых системах, даже если блок с цитатой не заполнен, он всё равно висит пустым полем. А здесь его нет — и всё. Контент структурируется (поля, типы, связи между сущностями), что снижает хаос в данных и упрощает повторное использование.
Это особенно важно для сайта, который будет жить и развиваться: контент-менеджеры сами смогут собирать страницы из нужных блоков, не заморачиваясь с пустыми полями и лишними настройками.
Что получилось в итоге:
- освоили Strapi с нуля — от структуры до деплоя;
- получили гибкую админку, которую легко дорабатывать;
- сэкономили время на разработке бэкенда и API;
- дали контент-менеджерам инструмент, который не требует участия разработчиков.
Теперь у нас есть опыт, который можно использовать в клиентских проектах.

Так статья выглядит в админке. А так на сайте.

Так отзывы выглядят в админке. А так на сайте.

Так главная страница выглядит в админке. А так на сайте.
Мы сделали сайт, который:
- работает на современном стеке: Next.js, TypeScript, Strapi;
- управляется контент-менеджерами без разработчиков;
- имеет классные анимации: кубик, динозавр, карточки;
- хорошо индексируется поисковиками;
- транслирует наше позиционирование.
Фишка в отсутствии фишек
Мы не пытались удивить мир летающими кнопками и парящими логотипами. Мы просто сделали хороший сайт, которым можно пользоваться. И это, наверное, наша главная фишка — мы не фокусники. Мы — разработчики, которые умеют делать качественно и со вкусом.
Планы на будущее
Мы не останавливаемся. В планах:
- Игра с динозавром — превратить пасхалку в полноценную игру для пользователя.
- Страница команды — показать, кто мы есть.
- Карта с городами — рассказать, где работают наши сотрудники.
- Доработка анимации кубика — сделать её ещё круче.
Стек технологий
- React.js
- Next.js
- GSAP
- Lenis
Команда
- Фронтенд разработчик4
- Бэкенд разработчик2
- QA-специалист