Flags SDK 3.0: новая версия библиотеки для Next.js и SvelteKit с открытым исходным кодом
Vercel выпустила третью мажорную версию Flags SDK — инструмента для управления фича-флагами в приложениях на Next.js и SvelteKit. Главное изменение: библиотека переведена на открытый исходный код под лицензией MIT. Это означает, что разработчики могут не только использовать SDK бесплатно, но и вноси

Vercel выпустила третью мажорную версию Flags SDK — инструмента для управления фича-флагами в приложениях на Next.js и SvelteKit. Главное изменение: библиотека переведена на открытый исходный код под лицензией MIT. Это означает, что разработчики могут не только использовать SDK бесплатно, но и вносить собственные изменения, предлагать интеграции и участвовать в развитии проекта. Flags SDK 3.0 приносит три ключевых улучшения: поддержку Pages Router, новую архитектуру адаптеров и механизм identify для контекстной оценки флагов. Эти изменения делают библиотеку более гибкой и подходящей для широкого круга задач — от постепенного внедрения функций до A/B-тестирования.
Что нового в Flags SDK 3.0
Flags SDK 3.0 приносит три ключевых улучшения. Во-первых, добавлена поддержка Pages Router — теперь фича-флаги можно использовать как в новом App Router, так и в классическом Pages Router. Это особенно важно для проектов, которые ещё не мигрировали на App Router или используют гибридную архитектуру. Во-вторых, введена новая архитектура адаптеров, которая позволяет подключать различные источники данных и провайдеров фича-флагов. Разработчики могут легко интегрировать SDK с собственными системами или сторонними сервисами. В-третьих, появилась концепция identify — механизм для установки контекста оценки флагов. С его помощью можно настраивать флаги и эксперименты для конкретных пользователей или групп, что открывает возможности для персонализации и A/B-тестирования.
Как работает новая архитектура адаптеров?
Архитектура адаптеров в Flags SDK 3.0 построена по принципу плагинов. Разработчик может написать адаптер для любого источника данных — будь то база данных, API или файл конфигурации. SDK предоставляет базовый интерфейс, который нужно реализовать. Это позволяет использовать флаги из LaunchDarkly, Split.io, собственного бэкенда или даже из статического JSON-файла. Адаптеры подключаются при инициализации SDK, и библиотека автоматически использует их для оценки флагов. Такой подход делает SDK гибким и независимым от конкретного провайдера.
Предыстория и контекст
Фича-флаги — это техника разработки, позволяющая включать и выключать функциональность приложения без повторного развёртывания. Они широко используются для постепенного внедрения изменений, тестирования гипотез и канареечных релизов. Vercel, как платформа для развёртывания фронтенд-приложений, стремится упростить эту практику для своих пользователей. Первая версия Flags SDK была запущена в 2023 году и была проприетарной. Открытие исходного кода — логичный шаг, учитывая тренд на прозрачность в сообществе JavaScript. Многие популярные инструменты, такие как Next.js, уже имеют открытый код, и Flags SDK следует этому пути.
Технические подробности и сравнение с предыдущей версией
В Flags SDK 2.0 поддержка ограничивалась только App Router и одним источником данных — по умолчанию это был файл flags.js. SDK 3.0 расширяет возможности: теперь можно одновременно использовать несколько адаптеров, а Pages Router получает полную поддержку. Концепция identify позволяет передавать идентификатор пользователя или группы при каждом запросе флага. SDK автоматически учитывает этот контекст при вычислении значения флага. Для Next.js это работает через middleware или серверные компоненты, а для SvelteKit — через хуки. Код стал модульнее: каждый адаптер — отдельный пакет, что уменьшает размер бандла, если используется только один источник.
Какие сценарии использования поддерживает Flags SDK 3.0?
Flags SDK 3.0 подходит для различных сценариев: от простого включения/выключения функций до сложных экспериментов с несколькими вариантами. Например, можно использовать флаги для канареечных релизов, когда новая функциональность сначала включается для небольшой группы пользователей. Или для A/B-тестирования, когда разным группам показываются разные версии интерфейса. Механизм identify позволяет привязывать флаги к конкретным пользователям на основе их ID, ролей или других атрибутов. Архитектура адаптеров даёт возможность подключать любые источники данных, включая собственные API, что особенно полезно для компаний с внутренними системами управления конфигурацией.
Кого затронет и как
Релиз в первую очередь важен для разработчиков на Next.js и SvelteKit, которые активно используют фича-флаги. Команды, которые ещё не перешли на App Router, теперь могут внедрять флаги без миграции. Архитектура адаптеров упрощает интеграцию с существующей инфраструктурой: например, можно подключить внутреннюю систему управления конфигурацией. Концепция identify полезна для продуктовых команд, проводящих A/B-тесты или персонализирующих опыт пользователей. Открытый исходный код также привлекает внимание сообщества: разработчики могут создавать собственные адаптеры и делиться ими. Для российских разработчиков, использующих Next.js, это дополнительная возможность адаптировать инструмент под свои нужды без привязки к вендору.
Что будет дальше
Vercel опубликовала обновлённую документацию с примерами на сайте Flags SDK. Репозиторий на GitHub уже доступен, и сообщество может начать вносить вклад. В ближайших планах — вероятно, поддержка других фреймворков, таких как Remix или Astro, а также расширение набора встроенных адаптеров. Учитывая, что Vercel активно развивает экосистему Next.js, можно ожидать более глубокой интеграции с Edge Runtime и функциями платформы. Разработчикам стоит следить за репозиторием, чтобы не пропустить новые адаптеры и улучшения.
Итог
Flags SDK 3.0 — значимый шаг вперёд для управления фича-флагами в экосистеме Next.js и SvelteKit. Поддержка Pages Router, гибкая архитектура адаптеров и контекст identify делают библиотеку универсальным инструментом для постепенного развёртывания и экспериментов. Открытый исходный код под MIT-лицензией повышает доверие и позволяет сообществу активно участвовать в развитии. Если вы используете Next.js или SvelteKit, Flags SDK 3.0 стоит изучить уже сегодня.