Jump to content

Додаткові рекомендації

Ми розуміємо, що бібліотеки, включені до create-t3-app, не вирішують кожну проблему. Хоча ми рекомендуємо розпочати свій проект з того, що ми надаємо, настане час, коли вам потрібно буде встановити інші пакети. Тільки ви можете знати, чого потребує ваш проект, але ось деякі рішення, які ми часто рекомендуємо.

Це рекомендації окремих учасників Create T3 App і не повинні розглядатись як “офіційні” рекомендації команди Create T3 App або T3-OSS. Будь ласка, проведіть власне дослідження, особливо перед тим, як прив’язуватись до платних сервісів.

Управління станом

Примітка редактора: Бібліотеки керування станом можуть бути відмінними, але часто не потрібні. tRPC’s хуки React Query повинні впоратися із вашим серверним станом. Для клієнтського стану почніть з useState React, і зверніться до одного з цих варіантів, коли вам буде потрібно більше.

Zustand

Для того, щоб більше ніколи не використовувати Redux

“Сучасний простий Redux”, який ви не знали, що вам потрібен. Poimandres завжди можна довіряти. Ви можете створювати все, від відеодзвінків до ігор та серверів із цією маленькою бібліотекою.

Jotai

Для того, щоб більше ніколи не використовувати Context

Jotai важко перевершити в підході Atomic. Також від Poimandres, Jotai дозволяє визначати сінгелтони, які здаються глобальними useState. Відмінний варіант для станів, які не вимагають стейт машини прямо зараз.

Бібліотеки компонентів

Більшість додатків потребують однакову низку компонентів: перемикачі, меню, модальні вікна і т.д. Ці бібліотеки надають відмінні, доступні компоненти, які ви можете використовувати та налаштовувати на свій розсуд.

Бібліотеки компонентів без стилів

Також відомі як headless бібліотеки, вони надають відмінні, нестилізовані та доступні компоненти, які ви можете налаштувати на свій розсуд. Ось кілька рекомендацій.

  • Radix UI надає потужний набір зручних і доступних примітивів, які ви можете стилізувати за допомогою звичайного CSS або Tailwind CSS.

  • Headless UI від команди Tailwind CSS також надає нестилізовані, доступні компоненти, які бездоганно інтегруються з Tailwind CSS.

  • React Aria надає доступні примітивні налаштування UI для вашої системи дизайну. Їхній компонент вибору дати - це найвищий рівень.

Бібліотеки компонентів зі стилями

Коли вам просто потрібно, щоб ваш додаток виглядав непогано

Іноді ви створюєте проект, де вам просто потрібно, щоб інтерфейс користувача виглядав від початку. Для адміністративних панелей управління та інших подібних проектів будь-яка з цих бібліотек компонентів упорається з цим завданням.

Class Variance Authority

Для створення бібліотек інтерфейсу користувача

Декларативно створюйте бібліотеку інтерфейсу користувача з різними кольоровими, розмірними і т.д. варіантами. Коли ваш проект досягає масштабу, де вам потрібен стандартизований набір компонентів інтерфейсу користувача з кількома варіантами з використанням Tailwind CSS, CVA - відмінний інструмент.

Анімації

Наші рекомендації для створення анімацій у вашому додатку.

AutoAnimate

Для анімацій з одним рядком коду

Більшість бібліотек анімації намагаються задовольнити кожен можливий випадок використання і стають громіздкими. AutoAnimate – це інструмент без конфігурації, який дасть вам значне покращення UX без додаткових зусиль розробника.

Framer Motion

Для складних анімацій із декларативним кодом

Framer Motion надає простий, декларативний синтаксис і дозволяє писати менше коду для створення всього: від складних анімацій і навіть до жестів.

Деплоймент, інфраструктура, бази даних і CI

Vercel

Для хостинга вашого додатка

Vercel позбавив нас болю при деплойменті веб-додатків, зробивши його простою інтеграцією з GitHub, яку можна встановити і забути. Ми без проблем масштабувалися до сотень тисяч користувачів. Він працює на AWS, але має набагато кращий інтерфейс :)

PlanetScale

Для баз даних без занепокоєння

PlanetScale - найкраща serverless платформа для баз даних, яку ми використовували. Неймовірна масштабованість, чудовий DX і фантастична ціна. Якщо ви використовуєте SQL (і, сподіваюся, Prisma), це важко перевершити.

Railway

Для розміщення вашої інфраструктури

“Сучасний Heroku”. Найпростіший спосіб запустити реальний сервер. Якщо вам не вистачає функціоналу Vercel і PlanetScale, то Railway, ймовірно, вам підійде. Вкажіть його на репозиторій GitHub і готово.

Upstash

Для serverless Redis

Ми любимо Prisma і PlanetScale, але деякі проєкти вимагають більш продуктивного рішення. Upstash дає вам змогу отримати in-memory продуктивність Redis у вашому безсерверному проєкті, не переймаючись самостійним управлінням інфраструктурою та масштабуванням.

Pusher

Для безсерверних WebSocket-ів

Якщо WebSocket є основним фокусом вашого проекту, ви можете розглянути більш традиційний бекенд, такий як Fastify (який також працює з tRPC!). Але для швидкого додавання WebSocket у T3 App, Pusher - чудовий вибір.

Soketi

Soketi - це самодостатня, проста і швидка альтернатива Pusher. Він повністю сумісний з Pusher SDK, який ви можете використовувати для підключення до сервера. Soketi serverless також перебуває в бета-версії.

Аналітика

Користувацькі дані дуже цінні, коли ви створюєте додаток. Ось кілька рекомендованих провайдерів аналітики.

Plausible

Потрібна аналітика? Plausible - один із найшвидших способів її отримати. Супер мінімалістичний. У нього навіть є простий плагін для Next.js.

Umami

Umami - це самодостатня, проста, швидка і конфіденційна альтернатива Google Analytics. Ви можете легко задеплоїти його на Vercel, Railway і т.д. з PlanetScale як базою даних.

Інше

Next Bundle Analyzer

Буває складно визначити, що буде включено до збірки вихідних даних для вашого додатка. Next Bundle Analyzer - це простий спосіб візуалізувати й аналізувати JavaScript-бандли, які генеруються.