Лучший tech_stack для стартапов:
Когда начинаешь пилить какой-то продукт с нуля, как правило выбор идет в сторону технологий, в которых ты уже достаточно хорош, и чаще всего это самый правильный подход. Знаешь питон - берешь FastAPI в бек. Всю жизнь юзаешь Vue? Выбираешь Vue.
Но такие решения не всегда могут быть оптимальны. Очень часто можно упускать какие-то революционные технологии которые ускоряют разработку в разы.
Несмотря на то что я большой любитель .NET'а в бекенде, все новые свои проекты я делаю не на нём. Сейчас я полностью погрузился в изучение и использование t3-stack'а
Что есть t3-stack? Это достаточно известный опен-сорсный стек построенный на следующих технологиях:
- Next.js (имба)
- tRPC (имба)
- Tailwind
- Prisma (имба)
- NextAuth (ультраимба)
Чем стек так примечателен? Тем что я эффективнее разрабатываю Fullstack проекты даже быстрее чем на C# + MVC. Хотя казалось бы. Учитывая что у меня опыта сильно меньше на нём чем на C#, это какой-то невероятный результат. Вот за счёт чего он достигается:
✨ tRPC. Имеет встроенную интеграцию с react-query. Так как он запилен поверх Next'а, то вот как теперь выглядит процесс разработки: делаешь бекенд-ручку, у тебя СРАЗУ появляются frontend типы с api-client'ы, которые работают сразу из коробки без предварительной настройки. Буквально за 1 минуту можно сделать запросы с фронта в бек и проверить их прям во время npm dev - никаких проблем с выбором URL хоста от env переменных, никаких болей с генерацией неюзабельных api клиентов по swaggergen'у, никакой боли с тем что надо (боже упаси) писать апи клиенты самостоятельно на axios или fetch-api. Короче говоря - game changer.
✨ NextAuth. Опять же, связывать фронтенд с бекендом это всегда была дикая боль. Но не с NextAuth. Опять же, т.к оно построено на Next, NextAuth связывает методы который ты вызываешь с фронта и привязывает его к бекенду приложения. Менеджмент сессий, куки, жвт - теперь об этом вообще даже не нужно думать, все задается конфигом и делается автоматически, а вам надо лишь вызывать нужные методы по типу "login", "signin" и т.д. А нужные данные по сессиям вам предоставят ввиде react-хуков. Подключение Google аутентификации занимает, без шуток, 3 минуты, и оно будет прям сразу работать в SPA приложении. Это основная боль которую я ощущал в ASP.NET Core - настройка нормальной authn/authz.
✨ Next.js - за счет того что он сочетает в себе фронт и бек приложение одновременно, он позволяет двум технологиям выше существовать в принципе. Плюс он развивается невероятными темпами, имеет кучу фичей по типу очень удобного file-роутинга, за что огромная благодарность Vercel
✨ Tailwind - сначала я его невзлюбил. Но как подпривык к нему и к инфраструктуре вокруг него, то он заиграл новыми красками. Особенно заходит юзать его в связке с shadcn-ui, получается разрабатывать фронтовую часть ЕЩЕ быстрее.
✨ Prisma - вторая по крутости ORM из всех что я пробовал после EntityFramework, а пробовал я довольно много разных на разных языках - sqlAlchemy, EF, Dapper, Gorm, Hibernate. Имеет очень крутое и удобное API.
Что в итоге получаем? Связать фронт и бек и сделать условный круд который будет потребляться фронтендом занимает x5 меньше времени чем на других стеках на которых я делал что-то подобное - FastApi c Vue и ASP.NET с React.
Я всем очень сильно советую попробовать этот стек для своих проектов, потому что это буквально идеальный набор инструментов для быстрого прототипирования, создания MVP и тестирования гипотез. А вы что думаете? Какой стек считаете идеальным? Пишите в комментах 🍋🍋🍋
Post #342
651