
Electron — самый быстрый и наименее рискованный способ выпустить кросс-платформенное десктопное приложение в 2026 году, если ваши пользователи ждут нативного ощущения на Windows, macOS и Linux, а команда уже владеет TypeScript, React и Node. Это решение, в одном предложении. Всё остальное — меньшие бандлы Tauri, более тесная интеграция WebView2 с Windows, мобильный паритет Flutter — это компромиссы, которые имеет смысл взвешивать только после того, как вы оценили, чего Electron на самом деле стоит и что приносит в продакшене.
Это руководство собирает наш подход к разработке десктопных приложений на Electron в Фора Софт после выпуска десктопных клиентов для видеосвязи, видеоконференций и образовательных платформ для заказчиков из 15+ стран. Мы рассматриваем: когда Electron — правильный (и неправильный) выбор, какой стек 2026 года реально доходит до релиза, реальные диапазоны бюджета по размеру проекта, пять инженерных привычек, которые мы никогда не пропускаем, как пережить подписание кода и автообновление, и какие пять подводных камней молча съедают ваш бюджет.
Главное
- На Electron в 2026 году работают VS Code, Slack, Discord, Figma Desktop, 1Password, Linear, Notion, Cursor, Signal и WhatsApp Desktop — реальные продукты с суммарной аудиторией в 100+ млн активных пользователей.
- Выбирайте Electron, если у вас команда на React/TypeScript, нужен паритет на трёх ОС и пользователи готовы к установщику в 120–200 МБ. Tauri 2.0 — когда нужны бандлы <20 МБ. Нативный Swift/Kotlin/C++ — когда обработка видео 4K 60fps не подлежит обсуждению.
- Реалистичные бюджеты на 2026 год: MVP десктопного клиента 1,8–6 млн ₽ (6–10 недель), SaaS-приложение средней сложности 6–15 млн ₽ (3–4 месяца), корпоративный клиент видеосвязи 15–37 млн ₽ и выше (6–9 месяцев).
- Пять привычек, которые спасают в продакшене: строгий
contextIsolation, preload-скрипт черезcontextBridge, автообновление через electron-builder, валидация IPC по принципу zero-trust и слой абстракции над нативными модулями. - Скрытые издержки, которые ломают сроки: нотаризация macOS, EV-сертификат для подписи Windows, универсальные бинарники под Apple Silicon, крайние случаи автообновления и утечки памяти от незакрытых BrowserWindow.
Почему Фора Софт написала это руководство по разработке десктопных приложений на Electron
Мы делаем video-first софт с 2005 года, а десктопные клиенты на Electron — со времён ранних версий 1.x. В нашем портфолио ProVideoMeeting (видеоконференции с досками, комнатами и записью), V.A.L.T. (700+ организаций, 25 000 ежедневных пользователей, запись с доказательной силой), Vodeo (OTT-сервис Janson Media) и большой список десктопных клиентов на Windows, macOS и Linux. Этот опыт определяет руководство: мы не сравниваем фреймворки как академики — мы описываем решения, которые наши инженеры принимали на реальных проектах, как выглядел финальный счёт и что ломалось в продакшене через три месяца после релиза.
Большинство туториалов по Electron заканчиваются на «npm init». Это руководство — про то, что происходит между прототипом и подписанным, автоматически обновляющимся бинарником, который ваш корпоративный клиент ставит через SCCM. Именно там живёт 80% настоящей работы.
Когда Electron — правильный выбор, а когда нет
Electron выигрывает, когда одновременно выполняются три условия: ваша команда сильнее в веб-технологиях, чем в нативных платформах; нужен функциональный паритет на Windows, macOS и Linux; в продуктовом плане есть браузерная версия, которая делит код с десктопом.
Зелёный свет для Electron
Команда уже выпускает на React/Vue/Svelte. Нулевая стоимость переключения контекста. Один инженер может вести и веб, и десктоп. Корпоративные клиенты требуют Linux. Tauri на Linux работает, но болезненно; нативный Qt/GTK — это отдельная команда. Electron собирает Linux-сборки из той же кодовой базы с первого дня. Нужна глубокая интеграция с файловой системой и ОС. Node.js даёт проверенный доступ к каждому примитиву ОС без необходимости писать биндинги на Rust или Swift. Нужны кастомные протоколы, иконка в трее, глобальные горячие клавиши, автозапуск. API основного процесса Electron закрывают всё это из коробки.
Красные флаги против Electron
Ваше приложение в простое потребляет меньше 80 МБ RAM. Пустой Electron на Chromium стартует с ~150–200 МБ — он будет выглядеть раздутым рядом с нативным конкурентом. Кодирование видео 4K 60 fps — основная ценность продукта. WebCodecs в Chromium догоняет, но нативные пайплайны на AVFoundation/Media Foundation всё ещё обходят его на профессиональном уровне. Целевые сценарии — изолированные или kiosk-развёртывания только под Windows. WebView2 на Windows 11 не добавляет ни одного лишнего байта. Нужны установщики <20 МБ для рынков с ограниченным каналом. Tauri 2.0 укладывается в 5–15 МБ; Electron — это 80–150 МБ в сжатом виде.
Наше правило
Если продакт-менеджер спрашивает «Electron или нативка?», мы отвечаем встречным вопросом: «Сколько стоят три нативные кодовые базы, которые должны быть синхронизированы пять лет подряд?». Когда эта цифра больше, чем экономия на RAM, побеждает Electron.
Electron в 2026: версии, Chromium, Node и история про безопасность
Каденс Electron в 2026 году — крупный релиз каждые 8 недель. На момент написания актуальная стабильная версия — Electron 41 на Chromium 146 и Node 24 LTS. Дефолты по безопасности заметно подтянулись в 2024–2026: contextIsolation по умолчанию true с v12, nodeIntegration по умолчанию false, а процессная модель v34+ убирает большую часть оставшихся атак на одном источнике.
Реальное потребление памяти
Пустое Electron-приложение в 2026 году стартует с ~150–200 МБ резидентной памяти. Хорошо собранное продакшен-приложение с UI на React и умеренным состоянием весит 300–500 МБ. VS Code с большим TypeScript-воркспейсом легко уходит за 1 ГБ. Это потолок, на который стоит закладываться. Что помогает: ленивая загрузка маршрутов рендерера, агрессивный демонтаж неиспользуемых вью, повторное использование одного BrowserWindow с навигацией внутри приложения вместо порождения новых окон.
Бюджет на размер бинарника
Chromium + Node + V8 + ffmpeg — это ~120 МБ на каждую ОС. Добавьте бандл рендерера (обычно 5–15 МБ после Vite), нативные модули (5–20 МБ), ассеты и локализации — и нормальный продакшен-установщик Electron получается 150–200 МБ. Универсальные сборки macOS, включающие бинарники под Intel и ARM64, удваивают артефакт под macOS до ~250–300 МБ.
Дефолты безопасности, которые нужно держать включёнными
Включайте sandbox для рендерера. Держите contextIsolation: true. Никогда не выставляйте require в рендерер. Используйте contextBridge.exposeInMainWorld для узкой типизированной IPC-поверхности. Включайте проверку целостности ASAR (Electron v30+), чтобы любая правка бандла ломала запуск. Валидируйте каждый payload IPC-канала на стороне основного процесса — рендерер достижим для атакующего.
Electron, Tauri, Flutter Desktop, WebView2 и нативка
Ландшафт альтернатив в 2026 году богаче, чем когда-либо. Вот честное сравнение для команд, которые выбирают сегодня — на основе реально выпущенного кода.
| Фреймворк | Размер бандла | RAM в простое | Язык | Подходит для |
|---|---|---|---|---|
| Electron 41 | 120–200 МБ | 150–250 МБ | TS/JS | Кросс-платформенный SaaS с веб-командой |
| Tauri 2.0 | 5–15 МБ | 60–120 МБ | Rust + TS | Узкий канал, повышенные требования к безопасности |
| Flutter Desktop | 20–50 МБ | 80–150 МБ | Dart | Точное соответствие моб. и десктопного UI |
| WebView2 (Win) | 2–10 МБ | 40–100 МБ | .NET или C++ | Корпоративные приложения только под Windows |
| .NET MAUI | 30–80 МБ | 80–180 МБ | C# | Windows+Mac, .NET-команды |
| Qt 6 / C++ | 30–80 МБ | 50–120 МБ | C++/QML | Видео реального времени, профессиональный звук |
| Нативный Swift/Kotlin | 10–40 МБ | 30–100 МБ | Swift/Kotlin | Showcase-приложения под конкретную платформу |
Tauri 2.0 — реальный претендент
Tauri использует встроенный в ОС WebView (WebKit на macOS, WebView2 на Windows, WebKitGTK на Linux) и Rust-бэкенд. Поэтому установщики весят 5–15 МБ, а RAM в простое держится около 60 МБ. Компромисс: движки WebView различаются по ОС. CSS и JS, который работает в Chromium, может не работать в Safari/WebKit на Mac. Если вы и так тестируете три браузера, Tauri зайдёт естественно. Если вы рассчитываете на Chromium везде — оставайтесь на Electron.
Чему учит миграция Microsoft Teams
Microsoft перевели Teams с Electron на WebView2 в 2023–2024 и заявили примерно о 50% сокращении памяти и двукратном ускорении холодного старта на Windows. Заодно они потеряли паритет на разных ОС: Mac-клиент теперь — отдельная кодовая база. Для Microsoft этот компромисс оправдан (они выпускают Windows и владеют WebView2). Для большинства SaaS-вендоров — нет: вам пришлось бы поддерживать WebView2 на Windows, WKWebView на Mac и WebKitGTK на Linux раздельно. Большинство команд остаются на Electron.
Кто выпускает на Electron в 2026 году (и о чём это говорит)
Список заказчиков — сигнал лучше любого бенчмарка. В 2026 году продакшен-приложения на Electron — это VS Code (~35 млн ежемесячных активных разработчиков), Slack (32+ млн ежедневных активных пользователей), Discord (200+ млн MAU), Figma Desktop, Notion Desktop, Linear, Obsidian, 1Password, Signal Desktop, Cursor, WhatsApp Desktop и Cisco Webex. Совокупная база установок — заметно больше 500 млн активных пользователей.
О чём это говорит: Electron — выбор по умолчанию, когда продуктовая команда ценит скорость выпуска, кросс-платформенный паритет и веб-стек для найма выше, чем последние 100 МБ RAM. Даже Cursor — конкурент уровня «AI-native IDE» 2023–2024 — предпочёл сделать форк VS Code на Electron, а не строить нативное приложение. Time-to-market оказался важнее эффективности по ресурсам.
Стек на Electron 2026, который мы реально выпускаем
После десятилетия проектов на Electron мы по умолчанию выпускаем именно этот стек. Отклоняемся только при наличии причины.
Сборка и тулинг
electron-vite для dev-сервера и бандлинга рендерера — HMR на уровне ожиданий веб-разработчика, TypeScript из коробки. Electron Forge 8+ как оркестратор сборки: он включает шаблоны под webpack, vite и parcel, занимается упаковкой, подписью и публикацией. electron-builder остаётся надёжной альтернативой для команд, которым нужны цели MSIX, Snap и Flatpak.
Стек рендерера
React 19 с новым Actions API или Vue 3.5. TanStack Query для серверного состояния. Zustand для клиентского состояния — он переживает перезагрузку окон в Electron лучше, чем Redux. Tailwind 4 для стилей. Radix UI или shadcn/ui для доступных примитивов.
IPC-слой
Типизированный IPC через electron-trpc или вручную написанные типизированные каналы. Каждый ipcMain.handle мы оборачиваем в валидатор по схеме Zod — это ловит 90% багов рендерера на этапе разработки и 100% случайно открытых поверхностей атаки.
Нативные расширения
node-api (N-API), собранные через node-gyp, или Rust на napi-rs. Мы предпочитаем napi-rs для всего, что касается реального времени в аудио и видео, потому что управление памятью предсказуемо. Для интеграции кодеков мы оборачиваем ffmpeg как локальный spawn-процесс, а не как линкованную библиотеку — так избегаем расхождений libc на разных дистрибутивах Linux.
Состояние и хранение
SQLite через better-sqlite3 для локальных данных. electron-store для небольших настроек. Для зашифрованных секретов — keytar или нативное защищённое хранилище ОС (Keychain, DPAPI, libsecret) за типизированной обёрткой.
Наблюдаемость
Sentry для отчётов о падениях и ошибках. PostHog или Amplitude для продуктовой аналитики. Лёгкий диалог об opt-in телеметрии при первом запуске — этого требуют GDPR, CCPA и корпоративные закупки.
Пять инженерных привычек, которые спасают в продакшене
1. Строгая изоляция контекста — без исключений
В webPreferences: contextIsolation: true, nodeIntegration: false, sandbox: true. Если библиотека требует nodeIntegration, перепишите интеграцию в основном процессе и выставьте в рендерер узкую типизированную поверхность. Мы не встречали ни одного случая, когда ослабление этой настройки оправдывало бы риск получить CVE.
2. Preload-скрипты только через contextBridge
Preload-скрипт — единственный мост между Node и рендерером. Выставляйте типизированный API через contextBridge.exposeInMainWorld('api', { ... }) с амбиентным объявлением типов. Никогда не выставляйте сырые ipcRenderer, fs или child_process. TypeScript-потребители получают автодополнение, а вы — аудит-лог по каждому IPC-каналу.
3. Валидация IPC по принципу zero-trust через Zod
Относитесь к каждому IPC-сообщению как к HTTP-запросу из интернета. Оборачивайте каждый обработчик ipcMain.handle в schema.parse(args) — иначе отклоняйте. Когда рендерер скомпрометируют — а на миллионах установок рано или поздно это случится, — валидация будет шлюзом между утечкой credential и удалённым выполнением кода.
4. Автообновление через electron-builder с первого дня
Автообновление — не фича версии 1.1. Выпускайте его в 0.1. electron-builder плюс S3, GitHub Releases или приватный generic-провайдер. Стейджите обновления: открывайте 5%-канарейку для внутренних пользователей перед широким раскатом. Тестируйте откат. Версионируйте формат манифеста обновлений, чтобы безопасно его развивать.
5. Абстракция над нативными модулями за слоем сервисов
Каждая нативная зависимость (keytar, better-sqlite3, node-pty, ffi-napi) прячется за TypeScript-интерфейсом сервиса. Тестируйте сервис через in-memory заглушку. Когда нативный модуль ломается на следующей версии Electron — а они все рано или поздно ломаются — вы меняете реализацию, а не вызовы. Только эта привычка сократила трудозатраты на апгрейды примерно на 40% по пяти проектам клиентов.
Сколько на самом деле стоит десктопное приложение на Electron в 2026 году
Эти диапазоны взяты из нашего портфеля проектов 2024–2026 годов и предположений по дисконтам Agent Engineering. Они реалистичны для опытного агентства с senior-инженерами, а не для контрактных ставок.
| Размер проекта | Бюджет | Сроки | Команда | Объём |
|---|---|---|---|---|
| MVP | 1,8–6 млн ₽ | 6–10 недель | 1 FE, 0,5 BE, 0,25 PM | 5–8 экранов, подписанные сборки Mac/Win, базовое автообновление |
| SaaS средней сложности | 6–15 млн ₽ | 3–4 месяца | 2 FE, 1 BE, 0,5 QA, 0,5 PM, 0,25 design | 15–25 экранов, OAuth, 2–3 нативные интеграции, поэтапный раскат |
| Корпоративный клиент видеосвязи | 15–37 млн ₽ и выше | 6–9 месяцев | 3–4 FE, 2 BE, 1 media-инженер, 1 QA, 1 PM, 0,5 design | Интеграция WebRTC/LiveKit, демонстрация экрана, виртуальный фон, MDM-упаковка, SSO, пентест |
| Миграция с веба на десктоп-оболочку | 3–9 млн ₽ | 2–3 месяца | 1–2 FE, 0,5 QA | Обёртка для существующего веб-приложения, интеграции с ОС, подписанная дистрибуция |
Скрытые статьи, которые клиенты всегда недооценивают: 37 500–112 500 ₽/год за Apple Developer + EV-сертификат для подписи Windows, 2–4 недели на кросс-платформенный QA для первого релиза, 15 000–37 500 ₽/мес на инструменты сбора падений и аналитики при 10K DAU, и 15–25% от первоначального бюджета ежегодно на апгрейды Electron и патчи безопасности.
Получите оценку для своего десктопного приложения
Думаете о десктопном клиенте на Electron для своего продукта?
Свяжитесь с нашим CTO. Мы набросаем стек, сроки и реалистичный бюджет под ваш сценарий — до того, как вы потратите хотя бы один инженерный спринт.
Подписание кода и дистрибуция: то, о чём вас никто не предупреждает
Сделать само десктопное приложение — это 60% работы. Доставить его на машины пользователей через современные шлюзы безопасности ОС — оставшиеся 40%. Закладывайтесь соответствующе.
macOS: подпись + нотаризация + stapling
Регистрируйтесь в Apple Developer Program (7 425 ₽/год). Сгенерируйте сертификат Developer ID Application. Подписывайте через electron-osx-sign (через electron-builder), используя hardened runtime и entitlements для камеры/микрофона/сети. Нотаризуйте через notarytool — Apple возвращает тикет за 2–15 минут (иногда за 2 часа, если очередь длинная). Прибейте (staple) тикет к сборке, чтобы Gatekeeper работал офлайн. Выпускайте универсальный бинарник под Intel + Apple Silicon.
Windows: EV-сертификат против SmartScreen
Стандартные сертификаты для подписи кода (22 500–45 000 ₽/год) всё ещё триггерят предупреждения SmartScreen при первой установке. EV-сертификат (Extended Validation, 30 000–52 500 ₽/год, требуется аппаратный токен) обходит большую часть трений с SmartScreen с первого дня. Для корпоративных клиентов также пригодятся MSIX-упаковка для Microsoft Store, MSI-пакеты для развёртывания через SCCM/Intune и установщик Squirrel для лёгкого автообновления.
Linux: AppImage + deb + rpm + Snap + Flatpak
electron-builder собирает AppImage (универсально), deb, rpm, snap и flatpak. Начинайте с AppImage — простое скачивание и запуск. Snap и Flatpak добавляйте только когда у вас будет 5%+ Linux-DAU, до этого накладные расходы на упаковку и ревью в сторах того не стоят.
Автообновление без ночных алертов
electron-updater (часть electron-builder) обрабатывает три основных сценария: Squirrel.Mac на macOS, Squirrel.Windows на Windows и self-update AppImage на Linux. Поверхность узкая, но точек отказа много.
Поэтапные раскаты с канареечными каналами
Сначала публикуйте в canary-канал (внутренние пользователи + 5% от всей базы). После 48 часов чистой телеметрии падений переводите в beta (20%). Через ещё 72 часа — в stable. Откат канала делается через публикацию версии-патча, которая возвращает изменения. Эта практика поймала регрессию в нативном модуле у одного клиента до того, как её увидели 90% пользователей.
Принудительные обновления для патчей безопасности
Заведите серверный флаг манифеста forceUpdate: true. Когда он включён, приложение отказывается стартовать на старых версиях и форсит переустановку. Используйте экономно — только для уязвимостей уровня CVE. Предупреждайте пользователей внутри приложения до того, как флаг переключится.
Дельта-обновления
electron-updater вычисляет дельту между релизами: обычно 5–20 МБ вместо полного установщика на 150 МБ. Включайте на пользователях с узким каналом, отключайте в корпоративных сетях с агрессивными кэширующими прокси, которые давятся на частичных загрузках.
Electron для приложений видеосвязи и стриминга: специальные нюансы
Видео реального времени — это та область, где десктопные приложения на Electron окупают себя или ломаются. Мы выпускали Electron-клиенты на LiveKit, Twilio Video и Agora. Вот что специфично для этой нагрузки.
Разрешения на камеру, микрофон и демонстрацию экрана
macOS требует явные entitlements и описания использования в Info.plist для камеры, микрофона, записи экрана и accessibility (для глобальных горячих клавиш). Демонстрация экрана триггерит системный запрос разрешения, который нельзя одобрить заранее, — стройте UX вокруг пустого состояния с понятным CTA. Windows 11 показывает переключатели разрешений в Параметрах > Конфиденциальность > Камера/Микрофон; имя вашего приложения должно совпадать с подписью исполняемого файла. На Linux нет ОС-уровня разрешений — в 2026 году демонстрацией экрана занимается PipeWire.
Аппаратное ускорение кодирования и декодирования
Chromium тащит с собой VideoToolbox (macOS), D3D11/Media Foundation (Windows) и VAAPI (Linux) для аппаратного декодирования H.264, H.265 и AV1. Включайте флаг --enable-features=VaapiVideoDecoder на Linux. Тестируйте на Intel UHD-графике и ARM Mac — в 2026 году декодирование AV1 уверенно работает на Apple Silicon M2/M3/M4 и Intel 11-го поколения и старше.
Виртуальные камеры и фоновые эффекты
TensorFlow.js или MediaPipe в рендерере для размытия и замены фона. Для тяжёлых эффектов (3D-аватары, AR-наложения) запускайте отдельный воркер-процесс с WebGPU или нативным модулем. Не делайте инференс на главном потоке — пропуски кадров убивают качество звонка.
Глубже в тему
Для video-first десктопных приложений мы стартуем с нашего playbook по разработке на LiveKit — он покрывает серверный SFU, клиентский SDK и интеграцию с Electron от и до.
AI прямо на устройстве в Electron: playbook на 2026 год
AI на устройстве — заголовочная фича десктопных приложений 2026 года: Notion, Linear, 1Password и Raycast выпустили интеграции с локальными моделями. В Electron есть три паттерна, которые стоит знать.
Ollama как локальный хост моделей
Поставляйте Ollama как sidecar-процесс (или просите пользователей установить отдельно). Electron-приложение общается с http://127.0.0.1:11434. Пользователи получают Llama 3, Mistral, Phi, Qwen. Ноль кода под GPU, никакой возни с CUDA/Metal. Единственная UX-зацепка — приглашение к установке.
WebLLM / WebGPU в рендерере
WebGPU стал кросс-браузерным в 2024–2025 и production-ready в Electron 32+. WebLLM запускает Llama 3 8B на GPU с 24 ГБ VRAM на скорости 20–40 токенов в секунду. Никакого sidecar, но накладные расходы по RAM и VRAM ощутимы.
Нативный ONNX Runtime через napi-rs
Для production-инференса (распознавание речи через Whisper, эмбеддинги, небольшие LLM) оборачивайте ONNX Runtime через napi-rs. Предсказуемая память, аппаратное ускорение через CoreML, DirectML и CUDA. Это подход, который мы используем для корпоративных клиентов, где данные не должны покидать конечную точку.
Усиление безопасности: чек-лист, который запрашивают корпоративные покупатели
У Electron исторически репутация фреймворка с проблемами безопасности. В 2026 году с дефолтным усилением он не уступает любой альтернативе — но только если вы выполняете чек-лист.
Десять пунктов, о которых спрашивают корпоративные закупки
1. Изоляция контекста включена. 2. Node integration в рендерере отключена. 3. Sandbox включён для всех BrowserWindow. 4. Проверка целостности ASAR включена. 5. Заголовок Content-Security-Policy установлен в строгое значение. 6. Все внешние ссылки открываются в браузере по умолчанию, никогда внутри приложения. 7. Никаких дефолтов setPermissionRequestHandler — явный allowlist. 8. Сетевая политика только HTTPS с certificate pinning для критичных эндпоинтов. 9. Проверка подписи автообновлений. 10. Документ SECURITY.md с раскрытым контактом по безопасности и SLA на ответ по уязвимостям.
Сертификация на практике
Аудиторы SOC 2 и ISO 27001 всё чаще запрашивают модель угроз отдельно для десктопного клиента. Мы поставляем одностраничную модель угроз с каждым релизом на Electron — это экономит клиентам 20–40 часов подготовки к аудиту.
Совет по безопасности
Относитесь к каждому preload-скрипту как к публичной поверхности API. Если ваш preload выставляет send или invoke с строковым именем канала, атакующий с XSS в рендерере может вызвать любой обработчик, который вы зарегистрировали. Делайте whitelist имён каналов в preload или выставляйте только именованные функции. Мы аудируем это в каждом релизе.
Мини-кейс: десктопный клиент видеосвязи за 14 недель
Клиенту Фора Софт — финтех-компании, которая проводит регулируемые видео-консультации, — нужен был десктоп-клиент под Mac и Windows с демонстрацией экрана, записью и регуляторно одобренным аудит-следом. Только веб не подходил: им нужно было размытие фона без постоянной нагрузки на CPU и пайплайн записи, который пишет зашифрованные файлы на диск.
Подход. Electron 36, electron-vite, React 18, клиент LiveKit, FFmpeg через napi-rs для пост-обработки и шифрования записи, electron-updater на приватном S3. Команда: 2 frontend-инженера, 1 media-инженер, 0,5 QA, 0,5 PM на 14 недель.
Результаты. Выпустили подписанные и нотаризованные сборки под macOS (универсальный бинарник) и Windows (с EV-подписью). Время до первого кадра — 1,8 с по P50 на ноутбуке среднего класса. RAM в простое 320 МБ с выключенным видео, 640 МБ во время звонка на 4 человека. Ноль критических CVE за первые 6 месяцев продакшена. Бюджет уложился в 13 млн ₽ — внутри диапазона 11–15 млн ₽, который мы озвучили на первом созвоне.
Что бы мы поменяли. Мы недооценили оформление EV-сертификата под Windows (3 недели бумажной работы с CA). В следующий раз стартуем этот процесс с первой недели. И стоило с первого дня вынести пайплайн записи в отдельный воркер-процесс, а не на шестой неделе.
Пять подводных камней, которые молча съедают ваш проект на Electron
1. Слишком долго сидеть на старой мажорной версии Electron
Окно поддержки Electron — три последних мажорных версии. Отстанете на четыре — и поставляете непатченный Chromium с известными CVE. Закладывайте спринт на апгрейд Electron каждый квартал.
2. Утечки памяти от незакрытых BrowserWindow
Каждый BrowserWindow, который вы открыли, должен быть явно destroy()-нут при закрытии. Полагаться на GC — значит видеть рост RAM на 50 МБ в час. Перед релизом гоняйте долгий тест на стейдже 24 часа подряд.
3. Несовпадение ABI нативных модулей
Каждая мажорная версия Electron меняет Node ABI. Каждый нативный модуль (better-sqlite3, keytar, node-pty, sharp) нужно пересобирать. Забудете один — поставите сломанный бинарник, который падает при запуске. Автоматизируйте через хук afterPack в electron-builder или electron-rebuild в CI.
4. Чрезмерное порождение дочерних процессов под видео
Одна команда, которую мы аудировали, запускала отдельный процесс FFmpeg на каждый кадр с камеры. CPU держался на 180% на MacBook Pro. Решение: один долгоживущий FFmpeg-воркер, кадры передаются через stdin. CPU упал до 18%.
5. Забыть про доступность
Скринридеры (NVDA, JAWS, VoiceOver) озвучивают ARIA-дерево рендерера. Пропустите семантический HTML — и ваше приложение провалит WCAG 2.2 AA, а заодно чек-лист корпоративных закупок. Запускайте axe-core в CI и делайте проход живым скринридером на каждый релиз.
Пять трендов 2026 года, меняющих разработку на Electron
WebGPU повсюду. Compute-шейдеры с GPU-ускорением в рендерере для видеоэффектов, ML-инференса, визуализации данных. Внедрение в Electron идёт быстрее, чем в браузерах, потому что вы контролируете версию Chromium.
electron-vite по умолчанию. electron-vite обогнал webpack в новых проектах на Electron в середине 2025 года. HMR ощущается как в веб-разработке, TypeScript — гражданин первого класса, скорость сборки выше в 3–5 раз.
Совместное владение с Tauri. Команды выпускают Electron сегодня и параллельно прототипируют вариант на Tauri для пользователей с узким каналом. Один рендерер — две оболочки.
Кастомизация нативного title-bar. Electron 36+ предоставляет first-class API для оверлея оконных контролов на Windows 11 и Vibrancy на macOS. Визуальный признак «это Electron-приложение» наконец исчез.
Внимание к безопасности цепочки поставок. SBOM (Software Bill of Materials) и подпись через sigstore стали обязательными для федеральных заказчиков США по EO 14028. Закладывайте воспроизводимые сборки и подписанные npm-зависимости с первого дня.
Модернизируйте десктопный стек
Всё ещё на Electron 24 или webpack? Обсудим путь апгрейда.
Наша команда переводила продакшен-приложения на Electron с v18 на v41, меняла webpack на electron-vite и перестраивала пайплайны автообновления — без единого простоя, заметного пользователю. Свяжитесь с нами, и мы распишем ваш апгрейд.
KPI, которые отслеживают с первого дня в продакшене
Доля сессий без падений (цель >99,5%). Время холодного старта по P95 (цель <3 с на ноутбуке 2022 года). RAM через 1 час работы по P95 (отслеживайте по вью; алертите на рост). Доля успешных автообновлений (цель >95%; всё, что ниже 90, — повод немедленно разбираться). Time-to-first-interactive (цель <1,5 с). Доля успешных установок подписанных сборок по платформам (цель >98%). Успех пересборки нативных модулей в CI (должно быть 100%). Скор доступности (axe-core >95, ноль нарушений WCAG 2.2 AA).
Одностраничный фреймворк: стоит ли вам идти в Electron
Ответьте на пять вопросов до того, как взять обязательства:
1. Сколько целевых ОС? Только Windows — посмотрите на WebView2 или .NET MAUI. Только Mac — SwiftUI. Три — Electron побеждает по умолчанию.
2. На каком языке команде комфортнее? TypeScript > Dart > Rust > C++ в большинстве коммерческих команд. Electron попадает в верх этой шкалы.
3. Какой бюджет по RAM? Меньше 80 МБ — нужны Tauri или нативка. Допустимо 200–500 МБ — Electron нормально.
4. Какой бюджет на размер установщика? Меньше 20 МБ — Tauri. 80–200 МБ — нормально для большинства SaaS.
5. Сколько ОС-специфичной полировки UX вам нужно? Пиксельная нативность (Mac-style тулбары, Fluent Design на Windows) — идите в нативку. Одно приложение на трёх ОС с умеренным брендингом — Electron.
FAQ
Electron всё ещё актуален в 2026 году или пора переходить на Tauri?
Electron остаётся самым прагматичным выбором, когда у вас веб-ориентированная команда и нужно идентичное поведение на трёх ОС. Tauri 2.0 хорош для рынков с узким каналом и для развёртываний с повышенными требованиями к безопасности, но взамен вы получаете три движка WebView, которые нужно прогонять через QA. Для большинства SaaS-проектов с командой на React Electron всё ещё выигрывает по time-to-market и согласованности.
Сколько RAM реально съест моё Electron-приложение?
Закладывайтесь на 150–250 МБ в простое и 300–600 МБ с типичным React-UI. Клиенты видеосвязи могут уходить до 700–1000 МБ во время звонка на 4–6 человек. VS Code на большом воркспейсе — 1–2 ГБ. Ленивая загрузка маршрутов и демонтаж неиспользуемых окон сдерживают самых проблемных потребителей.
Нужны ли мне сразу Mac и Windows для сборки и подписи?
Для подписи — да: подпись и нотаризация macOS требуют Mac в CI (подойдут раннеры macOS на GitHub Actions или Mac mini под Tart VM). Подпись Windows EV требует аппаратный токен на Windows-раннере или облачный HSM, например DigiCert KeyLocker. Linux-сборки можно делать с любой ОС.
Сколько занимает нотаризация macOS?
Обычно 2–15 минут. Иногда у нотариального сервиса Apple бывает очередь на 1–2 часа — закладывайте это в график релизов. Прибивание тикета (stapling) после нотаризации критично, чтобы Gatekeeper работал без обращения в интернет.
Можно ли делать на Electron приложение для видеосвязи или нативка лучше?
На Electron уже сегодня выпускают продакшен-клиенты для видеосвязи: Slack, Webex, голос Discord, Around. WebRTC в Chromium зрелый. Разрыв с нативкой меньше 10% по CPU на типичных звонках 4–8 человек на железе 2022 года и новее. Для профессионального вещания 4K 60 fps нативные пайплайны всё ещё впереди.
Какой минимальный MVP на Electron мы можем выпустить?
С senior-инженером и шаблонами electron-vite за 6 недель и примерно 1,8–3 млн ₽ вы получите подписанное автообновляемое приложение из 5 экранов под Mac и Windows. Это без EV-сертификата и Apple Developer-аккаунта. Для production-релиза с нормальным QA и поэтапным раскатом закладывайте 4,5–6 млн ₽.
Пройдут ли Electron-приложения аудиты SOC 2 и ISO 27001?
Да, многие проходят — Slack, 1Password, Linear. Аудиторы смотрят на практики подписи кода, проверку подписи автообновлений, усиление IPC, opt-in для отчётов о падениях и SBOM зависимостей. Заранее подготовьте документ с моделью угроз и SECURITY.md — десктоп-специфичный чек-лист закроется в первом цикле аудита.
Как обрабатывать апгрейды Electron между мажорами?
Планируйте спринт на апгрейд каждый квартал — один мажор за спринт держит поверхность изменений небольшой. Типичные поломки: несовпадение ABI нативных модулей (пересборка через electron-rebuild), устаревшие API (смотрите release notes) и Chromium-специфичные регрессии в CSS. 2–3 дня на мажор — типичная цифра для приложения средних размеров с нашим паттерном абстракции над нативными модулями. Свяжитесь с нами, если хотите получить наш чек-лист апгрейда.
Что почитать дальше
Гид по реализации
Как реализовать видеостриминг в вашем приложении
Серверная часть, SDK и интеграция на клиенте — playbook, который мы используем в каждом video-first десктопном проекте.
Технический стек
Лучшие технологии для приложений видеостриминга
WebRTC, LL-HLS, DASH — и какая комбинация подходит десктопному клиенту.
Планирование бюджета
Из чего складывается стоимость приложения для видеоконференций
Постатейная стоимость веб- и десктопных видеоклиентов на основе нашего портфеля проектов.
Экспертиза по LiveKit
Эксперты по разработке на LiveKit
Как мы интегрируем LiveKit в Electron-клиенты для WebRTC-видеосвязи.
QA-playbook
Тестирование на каждом этапе разработки продукта
Наши QA-процессы для десктопа, мобайла и веба, включая Electron-специфичные smoke-тесты.
Готовы выпустить десктопное приложение на Electron?
Фора Софт выпускает десктопные клиенты на Electron с 2017 года — для видеоконференций, прямых трансляций, e-learning и финтеха. Мы закрываем весь стек: архитектуру, Electron + React + нативные модули, подпись кода, автообновление и усиление безопасности под корпоративные аудиты. Если ваша команда взвешивает разработку десктопного приложения на Electron для нового продукта или планирует миграцию с устаревшего стека, мы поможем реалистично оценить объём.
Запустите проект
Свяжитесь с нашим CTO для предметного разговора.
Мы разберём ваши цели, предложим стек и сроки и поделимся прозрачным диапазоном бюджета — без продажного питча, только инженерия.

