Как собрать интерфейс в стиле Linear на Next.js и shadcn ui
Интерфейс Linear давно стал эталоном для инструментов управления проектами. Быстрый, лаконичный, с продуманной клавиатурной навигацией и темной темой по умолчанию. Неудивительно, что многие веб-разработчики мечтают воссоздать похожий UX в собственных продуктах или пет-проектах.
Недавно я наткнулся на open-source репозиторий Circle от французского разработчика ln-dev7. Это аккуратная реализация дашборда для трекинга задач, проектов и команд, собранная на стеке Next.js, TypeScript и shadcn/ui. Проект успел набрать больше трех тысяч звезд на GitHub, и на то есть причины.
Зачем нужен ещё один шаблон дашборда
Каждый, кто пробовал верстать сложные административные панели, знает эту рутину. Нужно развернуть проект, настроить сайдбар, собрать таблицы с фильтрами, сверстать карточки тасок, наладить переключение тем и подогнать адаптив под мобильные экраны. В итоге половина времени уходит на банальную раскладку, а не на бизнес-логику.
Circle предлагает готовый UI-каркас, который выглядит прямо как продуктовая система Linear. Тут есть:
- Страницы для просмотра списка задач с фильтрацией по статусам и приоритетам
- Разделы для управления проектами и командами
- Продуманный темный режим и чистая типографика
- Готовые UI-компоненты на базе Tailwind CSS
При этом важно понимать лимиты. В репозитории лежит именно интерфейсная часть, а не полноценный бэкенд с базой данных. Вся работа с данными завязана на клиентский стейт и моки. Если вам нужен готовый сервис, который можно сразу развернуть на сервере и выдать команде, Circle без доработок не подойдет. Но как стартовая точка для собственного приложения инструмент выходит отличный.
Что под капотом
Автор не стал изобретать велосипед и взял привычный стек.
В основе лежит React-фреймворк Next.js с App Router. Вся стилизация выполнена через Tailwind CSS, а компоненты построены на базе shadcn/ui. Для тех, кто с ним не знаком: shadcn/ui это не традиционная библиотека компонентов вроде Material UI или Ant Design. Вместо установки тяжелой зависимости вы копируете исходники нужных компонентов прямо в дерево своего проекта и правите их под себя.
Код написан на TypeScript. Структура каталогов стандартная для Next.js:
- Папка
appсодержит роутинг и страницы приложения - В
componentsлежат переиспользуемые элементы интерфейса и блоки shadcn/ui - В
libсобраны утилиты и хелперы для работы со стилями - Папка
publicхранит статические иконки и графику
За счет этого проект легко кастомизировать. Хотите поменять цветовые акценты? Правите переменные Tailwind. Нужно добавить новый вид таблицы задач? Копируете существующий React-компонент и редактируете пропсы.
Быстрый запуск и работа с проектом
Поднять проект локально можно буквально за пару минут. Понадобятся Node.js и пакетный менеджер pnpm.
Сначала клонируем репозиторий:
git clone https://github.com/ln-dev7/circle.git
cd circle
Устанавливаем зависимости и запускаем сервер разработки:
pnpm install
pnpm dev
После этого приложение доступно по адресу http://localhost:3000. При первом запуске в глаза бросается плавность работы. Переходы между разделами происходят без задержек, а компоненты аккуратно сверстаны.
Если планируете использовать Circle как основу для реального сервиса, вам придется привязать к UI бэкенд. Самый простой путь — подключить Supabase, Prisma с PostgreSQL или Server Actions в Next.js. Потребуется переписать локальные моки на запросы к вашей базе данных и настроить авторизацию.
В чем практическая польза
Я бы выделил два основных сценария, где Circle сэкономит время.
Во-первых, это быстрый старт для пет-проектов и прототипов. Если вы делаете таск-трекер, CRM-систему или внутреннюю панель управления для клиента, верстка UI обычно съедает дни работы. С Circle вы получаете готовый дизайн с адекватными отступами и нормальной цветовой палитрой.
Во-вторых, это хорошая кодовая база для изучения подходов shadcn/ui и Next.js. Можно подглядеть, как автор организует макеты, верстает сложные таблицы и настраивает компоненты интерфейса.
Чего проекту не хватает
README у репозитория довольно скупой. В нем практически нет описания архитектуры или гайдов по расширению. Приходится разбираться в коде самостоятельно, хотя сам код чистый и понятный.
Также стоит учитывать, что базовые элементы управления тут завязаны на стандартные паттерны shadcn/ui. Если вам нужна сложная логика drag-and-drop для канбан-досок или реалтайм-обновления через веб-сокеты, всё это придется верстать и настраивать с нуля.
Circle — достойный открытый шаблон интерфейса для тех, кому нравится эстетика Linear и стек Next.js с Tailwind CSS. Проект не претендует на роль готового таск-трекера из коробки, но как отправная точка для собственного фронтенда экономит десятки часов рутинной верстки.
Если вы планируете новый проект с трекингом задач или просто ищете свежий шаблон на shadcn/ui, определенно загляните в репозиторий.