NETROOM
Excalidraw - виртуальная доска для схем и диаграмм в стиле «от руки»: наброски архитектуры, user flow, wireframes и всё, что проще нарисовать, чем описать словами. Работает прямо в браузере, без регистрации: открыл вкладку и рисуешь. Есть библиотеки готовых элементов, экспорт в PNG и SVG, совместное редактирование по ссылке и сквозное шифрование комнат. Файлы можно хранить локально или подключить своё хранилище. Открытый исходный код, есть self-hosted вариант для команд.
Squoosh - сжатие картинок прямо в браузере: перетащил файл, выбрал формат и качество, скачал результат. Ползунок показывает оригинал и сжатую версию рядом, так что видно, где начинают лезть артефакты, и можно остановиться на грани. Форматов много, у каждого свои настройки - от одной ручки качества до параметров самого кодека. Файлы никуда не отправляются: вся работа идёт на вашем устройстве, даже без интернета - приложение ставится как обычное. Сделано командой Google Chrome Labs, открытый код, регистрация не нужна.
«Швейцарский нож» для данных от британского GCHQ. Собираешь цепочку операций - «рецепт» - и прогоняешь через неё текст или файл: base64, XOR, AES, DES, Blowfish, хеши, hexdump, разбор X.509 и IPv6, распаковка архивов, перекодировка. Всё считается прямо в браузере, ничего не улетает на сервер, страницу можно скачать и открыть офлайн. Лицензия Apache 2.0 плюс Crown Copyright. Незаменим при разборе логов, дампов и подозрительных payload-ов.
Швейцарский нож для PDF в браузере, но на своём сервере: слить и разрезать, повернуть, сжать, конвертировать в офисные форматы и обратно, распознать текст через OCR, подписать, заредактировать чувствительные куски, собрать цепочку операций через REST API. Больше пятидесяти инструментов. Смысл в том, что файлы не уезжают в чужое облако. Поднимается одним docker run, есть десктопный клиент и чарты для Kubernetes. Модель open-core: ядро открыто, часть возможностей в платных Server и Enterprise планах.
Внимание: пакет переименован. Ставьте @base-ui/react - там стабильная ветка 1.x, а старое имя застряло на 1.0.0-rc.0 и помечено deprecated. Сама библиотека - headless-примитивы от авторов MUI, Radix и Floating UI: диалоги, меню, селекты, поповеры без единой строчки стилей, зато с проработанной доступностью и фокус-менеджментом. Хороший фундамент, если строите свою дизайн-систему поверх Tailwind. MIT.
Компоненты без единой строчки стилей от команды Tailwind: Dialog, Menu, Combobox, Listbox, Popover, Tabs, Switch, Disclosure. Поведение, фокус, клавиатура и aria уже внутри, внешний вид целиком ваш - удобно, когда дизайн свой, а не готовая тема. Набор заметно меньше, чем у Radix: нет тултипа, слайдера, аккордеона в привычном виде, - зато API проще и родные переходы через data-атрибуты. Только клиент, в Next.js нужен use client. React 18 и 19, MIT.
Ветеран i18n в JS: интерполяция, плюрализация, контексты, разбиение на namespace, ленивая загрузка переводов, определение языка по браузеру или cookie. Ядро без зависимостей, всё остальное - плагины (react-i18next для хуков, i18next-http-backend для загрузки). Экосистема огромная, но платите за неё конфигом: настроить i18next заметно дольше, чем next-intl или Lingui. Берите, когда переводы приходят из CMS или TMS и когда проект живёт не только в React. Версия 26 актуальна, MIT.
Это CLI, а не библиотека компонентов - важное различие. Команда shadcn add dialog копирует исходник компонента прямо в твой проект, в components/ui, и дальше он твой: правишь как обычный файл, обновлений из npm не будет. Под капотом Radix UI и Tailwind, так что примитивы и доступность приходят оттуда. Ставится в devDependencies. Умеет реестры - можно раздавать свои компоненты команде по URL. Минус очевиден: следить за апстримом придётся вручную.
Пакет помечен как deprecated: библиотека переименована, ставить нужно @heroui/react. Последняя версия под старым именем - 2.6.11 от января 2025, обновлений больше не будет. Сама библиотека жива: компоненты на Tailwind и React Aria, доступность из коробки, тёмная тема, анимации на Framer Motion. Миграция сводится к переименованию пакета, импортов и tailwind-плагина. Встретили @nextui-org в проекте - значит зависимости не трогали больше года.
Серверный SDK Firebase для Node: работает от сервис-аккаунта и обходит security rules, поэтому ему место только в Route Handlers, Server Actions и cron-задачах - утечка ключа в клиент означает полный доступ к базе. Умеет то, чего нет в клиенте: создание пользователей, custom claims, массовая рассылка пушей, чтение и запись без ограничений. На edge-рантайме не запускается, нужен полноценный Node. Инициализацию держите синглтоном, иначе hot reload наплодит приложений. Apache-2.0.
Клиент Ably - платного облака для realtime: pub/sub-каналы, presence, история сообщений, гарантия доставки и восстановление соединения после обрыва. React-хуки лежат в этом же пакете (ably/react), отдельная обвязка не нужна. Ветка 2.x живая, релизы идут регулярно, лицензия Apache-2.0. Берите, когда нужен надёжный realtime без своего сервера сокетов и вы готовы платить за сообщения. Если трафик большой и предсказуемый, свой socket.io выйдет дешевле.
Клиент Pusher Channels: подписка на каналы, приватные и presence-каналы с авторизацией через ваш бэкенд, автопереподключение, запасные транспорты. Инфраструктуру WebSocket держит Pusher, поднимать и масштабировать сокет-сервер не нужно. Обратная сторона - оплата по соединениям и сообщениям плюс прогон данных через чужой сервис. Релизы выходят, MIT. Перед выбором сравните с Supabase Realtime и Ably; при своём бэкенде дешевле поднять Socket.IO.
Клиент Socket.IO. Важно понимать: это не WebSocket, а свой протокол поверх него, с фолбэком на HTTP long-polling, автопереподключением, комнатами, подтверждениями доставки и событиями вместо голых сообщений. Значит и сервер нужен именно socket.io - с обычным ws или WebSocket API он не заговорит. Берут, когда сеть у пользователей плохая, а переподключение и реконнект писать не хочется. Если фолбэки не нужны, нативный WebSocket легче на несколько десятков килобайт.
Запускает TypeScript и ESM в Node напрямую: `tsx script.ts` вместо предварительной компиляции. Внутри esbuild, поэтому старт мгновенный, но типы не проверяются - это runner, а не компилятор, `tsc --noEmit` всё равно нужен отдельно. Есть режим watch, REPL и подключение через `--import tsx` в любой node-процесс. Рядом с ts-node выигрывает скоростью и тем, что не воюет с ESM и tsconfig paths из коробки. Одна зависимость - esbuild. MIT, релизы частые.
Набор хуков от Adobe, закрывающий поведение и доступность, но не разметку: useButton, useSelect, useDatePicker и ещё около сотни. Отдают пропсы, а DOM и стили пишешь полностью сам - максимум контроля и максимум кода. Сильные стороны, которых нет почти нигде: интернационализация календарей и чисел через @internationalized/*, аккуратная работа с тач, пером и мышью, RTL. Релизы идут постоянно - 3.52.0 от сентября 2026. Если разметку писать не хочется, бери react-aria-components. Apache-2.0.
Клиентский SDK Google: авторизация, Firestore, Realtime Database, Storage, вызов Cloud Functions, пуши, аналитика - всё под одним npm-пакетом. С девятой версии API модульное, импортируете getAuth и getFirestore точечно, и бандлер выбрасывает неиспользуемое; иначе в бандл легко уедет пара сотен килобайт. Работает только в браузере, в Next.js это клиентские компоненты; серверная часть - firebase-admin. Vendor lock-in реальный, переезд с Firestore потом дорогой. Apache-2.0.
WebSocket, который сам переподключается: экспоненциальный backoff, очередь сообщений на время разрыва, пинги, одинаковый API в браузере и в Node. Вырос из PartyKit, сейчас живёт в репозитории Cloudflare, но говорит с любым сервером, а не только с Workers и Durable Objects. Для React есть хук usePartySocket. Хорошая замена reconnecting-websocket - свежее и с типами. Это не протокол и не транспорт поверх, а крепкая обёртка над штатным WebSocket. MIT.
Официальный тулкит Sanity для Next.js: типизированный клиент для GROQ-запросов, кэш-теги и ревалидация под App Router, живой предпросмотр черновиков и студия Sanity, встроенная прямо в маршрут /studio. Если контент уже лежит в Sanity, он закрывает всю обвязку, которую иначе пишут руками. Тянет @sanity/client, а вместе со студией - весь редактор: следите, чтобы студия не уехала в бандл витрины. Обновляется почти еженедельно, MIT.
Крошечный загрузчик: сам Stripe.js в пакет не входит, loadStripe подтягивает скрипт с домена Stripe в рантайме. Так задумано - библиотеку нельзя бандлить к себе, иначе теряется смысл PCI-изоляции и ты не получаешь обновления антифрода. Отсюда практический момент: домен js.stripe.com должен быть открыт в CSP. Функция возвращает промис, вызывай её один раз вне компонента, чтобы не грузить скрипт на каждый рендер. Публикуемый ключ здесь не секрет и живёт на клиенте.
Отправка почты из Node: SMTP, вложения, HTML, DKIM, пулы соединений, OAuth2 для Gmail. Стандарт де-факто больше десяти лет, релизы выходят до сих пор. Работает только в Node-рантайме: в edge-функциях и в браузере не запустится, поэтому на Vercel маршрут держат на runtime «nodejs». Лицензия MIT-0 - нетипичная, но максимально свободная. Для транзакционных писем на объёме удобнее API вроде Resend: доставляемость зависит от домена и репутации, а не от библиотеки.
Преемник Moment.js от того же автора: иммутабельные объекты DateTime, честные таймзоны и локали через встроенный Intl, интервалы, длительности, разбор и форматирование ISO. Ноль зависимостей, около 20 КБ - легче Moment, но тяжелее date-fns и day.js, потому что тащит полноценную модель времени, а не набор функций. Берите, когда в проекте много зон и календарной арифметики. Релизы редкие, последний осенью 2025: библиотека стабильна, а не заброшена. MIT.
Клиент к Sanity - headless CMS, где контент запрашивают на GROQ, а не GraphQL. Изоморфный: работает в браузере, в Node и на edge. Умеет чтение с CDN, мутации и патчи с оптимистичной блокировкой, загрузку ассетов и Live Content API для мгновенных обновлений без ревалидации. В Next.js обычно берут не его напрямую, а next-sanity - там уже увязаны кэш, теги и черновики. Зависимостей мало. Токен с правами записи держи только на сервере.
Загрузчик файлов с человеческим лицом: drag-and-drop, превью картинок, прогресс, отмена, повтор при обрыве, чанковая заливка больших файлов. Ядро на ванильном JS без зависимостей, для React нужен ещё пакет react-filepond - сам filepond компонента не даёт. Обрезка, ресайз, EXIF-поворот, валидация типа и размера подключаются плагинами, каждый отдельным пакетом. Полностью клиентский, в Next.js помечайте use client. MIT, поддержка живая, релизы регулярные.
Redis-клиент для Node с полным покрытием: Cluster, Sentinel, pipelining, Lua-скрипты, pub/sub, стримы, автореконнект и офлайн-очередь команд. Промисы из коробки, типы TypeScript в комплекте. Против официального node-redis выигрывает зрелой поддержкой кластера, слегка проигрывает в свежести RESP3. С 2021 года живёт под крылом Redis Inc., шестая мажорная вышла летом 2026. В serverless лучше взять @upstash/redis или HTTP-клиент - долгое TCP-соединение там живёт плохо.
Больше двухсот отдельных функций для дат: format, addDays, differenceInHours. Импортируете только нужное, бандлер выбрасывает остальное - в отличие от Moment.js, который приезжал целиком со всеми локалями. Ничего не мутирует, работает с нативным Date, зависимостей ноль. В четвёртой версии наконец появились таймзоны, но отдельным пакетом @date-fns/tz. Если хочется цепочек в стиле Moment - смотрите dayjs; если строгую модель времени - Temporal или js-joda. MIT, ESM и CJS, релизы регулярные.
Веб-интерфейс к Vitest: дерево файлов и тестов, ошибки с читаемым диффом, граф модулей, перезапуск одного теста кликом. Запускается флагом --ui и открывается в браузере рядом с watch-режимом. Оправдывает себя, когда тестов столько, что в терминале уже не разглядеть, что именно упало. Ставится в devDependencies и жёстко привязан к версии Vitest - peer прописан точным номером, обновлять надо парой. В прод-бандл не попадает никогда. MIT.
Виджет выделения области на картинке: рамка тянется мышью, пальцем и с клавиатуры, есть фиксированное соотношение сторон, круглая рамка, минимальные и максимальные размеры. Важно понимать границу ответственности - пакет только отдаёт координаты, само кадрирование вы делаете сами через canvas. Ноль зависимостей, 115 КБ распакованных, React от 16.13, лицензия ISC (по сути тот же MIT). Живой: 11.1.2 от июня 2026.
ODM поверх официального драйвера: схемы, валидация, миддлвары pre и post, populate вместо ручных join-ов, виртуальные поля, дискриминаторы. Типы выводятся из схемы, с девятой версии поддерживается Standard Schema. Плата за удобство - вес и лишний слой абстракции: тяжёлые агрегации всё равно приходится писать драйвером напрямую. Классическая ловушка в Next.js и serverless - переподключение на каждый запрос, кэшируйте соединение в globalThis. Релизы частые, MIT.