Хабы: React Native, TypeScript, ReactJS, Open source

В 2022-м мы окончательно задолбались.
Каждый новый проект все по кругу: таблички, формы, фильтры, CRUD. Всё снова, как в Groundhog Day. Копипастить старое было больно, собирать с нуля – ещё хуже. И главное, ощущение абсурда: 2022 год, а мы продолжаем лепить админки вручную, будто на дворе 2015.
Окей, логичный шаг – найти готовое решение.
Мы правда пытались не изобретать велосипед
Первым делом пошли смотреть на CMS. Попробовали Strapi – мощный зверь, но если вам просто нужно бэку выдать пару CRUD’ов, то тянуть за собой целую экосистему с философией и особым образом жизни, это как стрелять из базуки по воробьям.
Дальше, дизайн-системы вроде Salesforce Lightning, Fluent UI и Fusion Design. Компоненты красивые, но по факту это просто UI-кирпичики. Всю бизнес-логику, связи между сущностями, обработку данных всё равно пишешь сам. Хотели сэкономить время, а получили “ты теперь ещё и архитектурой займись”.
React-Admin показался перспективным. Но мы быстро поняли, что он хочет, чтобы ты делал вещи его способом. А мы хотели делать их по-своему. Онбординг тяжёлый, кастомизация сложная, UI на любителя. Как часто бывает: сначала кажется, что ты взял инструмент, а потом он берёт тебя.
Мы поняли: компромиссы – это медленно
Ни одно из решений не дало нужного нам баланса:
— быстро поднять админку
— без боли кастомизировать под проект
— не увязнуть в чужих ограничениях
— не затащить в проект тонну лишнего кода.
Тогда и родилась мысль: "Окей, а если сделать своё? Но только по уму. Без оверинжиниринга, зато с учётом всего, что нас бесило раньше."
Так родился Admiral.
А теперь — техподробности, чтобы не думали, что мы тут пилили кнопку «войти»
Admiral – это небольшой, но крепкий фреймворк для сборки админок на React + TypeScript.
Он не тащит за собой монолит, не требует магии и лишней философии. Это скорее набор умных заготовок, который можно быстро натянуть на любой REST-бэкенд.
Что под капотом:
- Готовые компоненты для CRUD, с возможностью их переопределения (если у вас есть душевная боль, которую хочется выразить в форме таблички)
- Поддержка тем и стилизация под бренд клиента (даже если у него логотип Comic Sans)
- Локализация без боли – используем i18next
- Респонсив – работает не только на 1440px
Всё это в одной связке, без лишних зависимостей и свистелок.
Мы не делали MVP за выходные. Это заняло год и ~700 часов. Потихоньку вытаскивали повторяющиеся куски, оборачивали в компоненты, добавляли конфиги, писали доку.
Теперь Admiral работает в проде уже в 10+ проектах и каждый раз экономит нам часы, нервы и нецензурщину в коде.
TL;DR
Если вам каждый раз приходится собирать админку заново, у нас для вас есть подарок.
Admiral: https://github.com/dev-family/admiral
Мы будем рады фидбеку – как конструктиву, так и язвительным комментариям (всё-таки Хабр). Залетайте, пробуйте, кастомизируйте.
Может, пора перестать мириться с костылями?
Что было дальше?