В 2023 году команда Val Town приняла решение уйти от Supabase к классическим базам данных и упростить архитектуру аутентификации. Вместо нативных инструментов Supabase они выбрали Render для баз данных и Clerk для управления пользователями. Однако к концу того же года возникла проблема: у команды не было выбора, кроме как уйти от Clerk. Этот вопрос окончательно закрылся месяц назад после перехода на Better Auth.
Важно понимать контекст: компания Clerk добилась огромного успеха, недавно подняв 50 миллионов долларов при огромной лояльности клиентов. Supabase тоже преуспел, собрав 100 миллионов долларов. Несмотря на эти цифры, автор рад завершить сотрудничество с Clerk. Переход дался тяжело: пришлось много времени тратить на обходные пути, борьбу с ошибками и простоями. Архитектура Val Town жестко конфликтовала с ожиданиями сервиса. Основная претензия в том, что Clerk пытался заменять таблицу пользователей и сессий, что привело к двум критическим проблемам.
Во-первых, сервис был сильно ограничен по частоте запросов. Изначально разработчики думали, что смогут подгружать данные о пользователях через API по мере необходимости — например, для аватарок или настроек. SDK предлагал удобную функцию loadUser, которая работала отлично в разработке. На продакшене лимит составил пять запросов в секунду на весь аккаунт. Это полностью разрушило социальную часть сайта, где пользователи видят аватарки друг друга. Чтобы обойти это, данные пришлось синхронизировать через вебхуки, что усложнило регистрацию: на время создания аккаунта данные существовали только в Clerk, а не в базе Val Town.
Во-вторых, Clerk стал единственной точкой отказа для всех сессий. Система cookie автоматически обновлялась раз в несколько минут, чтобы быстро блокировать компрометированные токи. Для обновления токена Val Town отправлял запрос к Clerk, который его выдавал. Когда сервис падал, сайт становился недоступен даже для залогиненных пользователей. С мая 2025 года uptime держится на уровне двух-трёх девяток, но в прошлом простои длятся дольше. Надёжность системы равна минимальной надёжности её самых уязвимых звеньев.
Почему уход не был немедленным? Команда ценила стабильность и разработчиков SDK для Remix, Fastify и Express. Кроме того, альтернатив для аутентификации немного, многие решения устарели или заброшены. Выбрать идеальный баланс между собственным контролем и рисками стороннего вендора сложно.
Решением стал Better Auth. Проект показал высокое качество кода, отличную интеграцию с различными фреймворками и стал по-настоящему полезным инструментом. Риск зависимости от вендора сохраняется, так как проект разрабатывает одна компания, но теперь больше нет зависимости от онлайн-статуса провайдера для работы сессий. В качестве альтернативы рассматривался AuthKit от WorkOS, но предпочтение отдали полностью открытому решению.
Команда даже два недели поддерживала параллельную работу обоих сервисов: каждый эндпоинт принимал токены как от Clerk, так и от Better Auth. Постепенно пользователи переходили на новый сервис, пока их сессии не обновлялись. Весь код переписали вручную после тщательной проверки. Better Auth работает хорошо с экосистемой Val Town, и есть готовый шаблон для старта.
Вывод однозначен: нельзя полагаться на провайдеров, которые становятся единственной точкой отказа для работоспособности вашего продукта. Инструменты могут быть успешными, но не всегда решать конкретные задачи. Мир софта меняется быстро, и идеальное решение может появиться через год или два после того, как оно стало нужно.