Как бизнесу создавать десктопные приложения на Electron в 2026 году

12/1/2026
·
Обновлено
7.8.2026

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 60 кадров в секунду.
  • Реалистичные бюджеты на 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.х. В нашем портфолио — 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 или нативка?» — мы отвечаем встречным вопросом: «Сколько стоят три нативные кодовые базы, которые нужно поддерживать синхронно в течение пяти лет?». Когда эта сумма превышает экономию на оперативной памяти — побеждает 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 МБ оперативной памяти. Хорошо оптимизированное продакшен-приложение с интерфейсом на 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 41120–200 МБ150–250 МБTS/JSКросс-платформенный SaaS с веб-командой
Tauri 2.05–15 МБ60–120 МБRust + TSУзкий канал, повышенные требования к безопасности
Flutter Desktop20–50 МБ80–150 МБDartТочное соответствие мобильного и десктопного интерфейса
WebView2 (Win)2–10 МБ40–100 МБ.NET или C++Корпоративные приложения работают только под Windows
.NET MAUI30–80 МБ80–180 МБC#Windows+Mac, .NET-команды
Qt 6 / C++30–80 МБ50–120 МБC++/QMLВидео в реальном времени, качественный звук
Нативный Swift/Кotlin10–40 МБ30–100 МБSwift/KotlinShowcase-приложения для конкретной платформы

Tauri 2.0 — реальный претендент

Tauri использует встроенный в ОС WebView (WebKit на macOS, WebView2 на Windows, WebKitGTK на Linux) и Rust-бэкенд. Поэтому установщики весят 5–15 МБ, а в простое состояние приложение занимает около 60 МБ оперативной памяти. Компромисс: движки WebView отличаются на разных ОС. CSS и JavaScript, которые работают в 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 МБ оперативной памяти. Даже Cursor — конкурент уровня «AI-нативной IDE» 2023–2024 годов — предпочёл сделать форк VS Code на Electron, а не создавать полностью нативное приложение. Время выхода на рынок оказалось важнее эффективности использования ресурсов.

Стек на Electron 2026, который мы реально выпускаем

После десятилетия работы с Electron мы по умолчанию используем именно этот стек. Отклоняемся от него только при наличии веской причины.

Сборка и настройка

electron-вite для 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 для доступных UI-примитивов.

IPC-слой

Типизированный IPC через electron-trpc или вручную написанные типизированные каналы. Каждый ipcMain.handle мы оборачиваем в валидатор по схеме Zod — это ловит 90% ошибок рендерера на этапе разработки и 100% случайно открытых точек входа.

Нативные расширения

node-api (N-API), собранные через node-gyp, или Rust на napi-rs. Мы выбираем napi-rs для задач, связанных с обработкой аудио и видео в реальном времени, потому что управление памятью там предсказуемо. Кодеки интегрируем, запуская ffmpeg как отдельный процесс, а не подключая как библиотеку — это помогает избежать проблем с разными версиями 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) — иначе отклоняйте. Когда рендерер скомпрометируют — а на миллионах установок это рано или поздно произойдёт, — валидация станет барьером между утечкой учётных данных и удалённым выполнением кода.

4. Автообновление через electron-builder с первого дня

Автообновление — не новая функция версии 1.1. Выпускайте его уже в 0.1. electron-builder плюс S3, GitHub Releases или приватный generic-провайдер. Стейджите обновления: открывайте 5%-канарейку для внутренних пользователей перед широким раскатом. Тестируйте откат. Версионируйте формат манифеста обновлений, чтобы безопасно его развивать.

5. Абстракция над нативными модулями через слой сервисов

Каждая нативная зависимость (keytar, better-sqlite3, node-pty, ffi-нapi) скрыта за TypeScript-интерфейсом сервиса. Тестируйте сервис с помощью in-memory-заглушки. Когда нативный модуль перестаёт работать после обновления Electron — а это рано или поздно случается со всеми — вы меняете реализацию, а не сами вызовы. Только эта практика сократила трудозатраты на обновления примерно на 40% в пяти проектах клиентов.

Сколько на самом деле стоит десктопное приложение на Electron в 2026 году

Эти диапазоны взяты из нашего портфеля проектов на 2024–2026 годы и предположений по дисконтам от Agent Engineering. Они реалистичны для опытного агентства с senior-инженерами, а не для ставок по контракту.

Размер проекта Бюджет Сроки Команда Объём
MVP1,8–6 млн ₽6–10 недель1 FE, 0,5 BE, 0,25 PM5–8 экранов, подписанные сборки для Mac и Windows, базовое автообновление
SaaS средней сложности6–15 млн ₽3–4 месяца2 FE, 1 BE, 0,5 QA, 0,5 PM, 0,25 design15–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 недели на кросс-платформенный тестовый запуск первого релиза, 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 минут (иногда до двух часов при высокой нагрузке). Прикрепите (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 для доступа к камере, микрофону, записи экрана и функциям доступности (например, для глобальных горячих клавиш). Запуск демонстрации экрана вызывает системный запрос разрешения, который нельзя предварительно одобрить — проектируйте пользовательский интерфейс с учётом пустого состояния и понятным призывом к действию (CTA). В Windows 11 настройки разрешений находятся в разделе «Параметры» → «Конфиденциальность» → «Камера» или «Микрофон»; имя вашего приложения должно точно совпадать с подписью исполняемого файла. На Linux разрешений на уровне операционной системы нет — в 2026 году запись экрана будет осуществляться через PipeWire.

Аппаратное ускорение кодирования и декодирования

Chromium использует VideoToolbox (macOS), D3D11/Media Foundation (Windows) и VAAPI (Linux) для аппаратного декодирования H.264, H.265 и AV1. На Linux включайте флаг --enable-features=VaapiVideoDecoder. Проверьте работу на 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. Единственная вещь, влияющая на пользовательский опыт — это приглашение установить Ollama.

WebLLM / WebGPU в рендерере

WebGPU стал кросс-платформенным в 2024–2025 годах и готов к использованию в продакшене в Electron 32+. WebLLM запускает Llama 3 8B на GPU с 24 ГБ видеопамяти со скоростью 20–40 токенов в секунду. Никаких дополнительных процессов не требуется, но нагрузка на оперативную и видеопамять заметна.

Нативный 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 в рендерере сможет вызвать любой зарегистрированный вами обработчик. Используйте белый список имён каналов в preload или предоставляйте только конкретные именованные функции. Мы проверяем это в каждом релизе.

Мини-кейс: десктопный клиент видеосвязи за 14 недель

Клиенту «Фора Софт» — финтех-компании, проводящей регулируемые видеоконсультации, — нужен был десктопный клиент для Mac и Windows с возможностью демонстрации экрана, записи и аудиторским следом, одобренным регулятором. Веб-решение не подходило: требовалось размытие фона без постоянной нагрузки на CPU и надёжный пайплайн записи, который сохраняет зашифрованные файлы на диск.

Подход. Electron 36, electron- vite, React 18, клиент LiveKit, FFmpeg через napi-rs для постобработки и шифрования записи, electron-updater на приватном S3. Команда: 2 фронтенд-инженера, 1 медиав инженер, 0,5 QA, 0,5 PM на 14 недель.

Результаты. Выпустили подписанные и нотаризованные сборки под macOS (универсальный бинарник) и Windows (с EV-подписью). Время до первого кадра — 1,8 с по P50 на ноутбуке среднего класса. RAM в простое — 320 МБ с выключенным видео, 640 МБ во время звонка на 4 человека. За первые шесть месяцев в продакшене не выявлено критических уязвимостей (CVE). Бюджет уложился в 13 млн ₽ — в рамках заявленного диапазона 11–15 млн ₽, который мы озвучили на первом созвоне.

Что бы мы поменяли. Мы недооценили оформление EV-сертификата под Windows (3 недели бумажной работы с CA). В следующий раз начнём этот процесс с первой недели. И стоило с самого начала вынести пайплайн записи в отдельный воркер-процесс, а не делать это на шестой неделе.

Пять подводных камней, которые тихо съедают ваш проект на Electron

1. Слишком долго оставаться на старой мажорной версии Electron

Окно поддержки Electron — три последние мажорные версии. Отстанете на четыре — будете использовать непатченный Chromium с известными уязвимостями. Закладывайте спринт на обновление Electron каждый квартал.

2. Утечки памяти из-за незакрытых BrowserWindow

Каждый BrowserWindow, который вы открыли, нужно явно destroy() вызывать при закрытии. Полагаться на сборщик мусора — значит наблюдать рост памяти на 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 и проверяйте работу скринридера на каждом релизе.

WebGPU повсюду. Compute-шейдеры с ускорением на GPU используются в рендерерах видеоэффектов, для ML-инференса и визуализации данных. Внедрение в Electron идёт быстрее, чем в браузерах, потому что вы сами управляете версией Chromium.

electron-вите по умолчанию. electron-вите обогнал webpack в новых проектах на Electron в середине 2025 года. HMR работает так же быстро, как в веб-разработке, TypeScript — полноценный участник, скорость сборки выше в 3–5 раз.

Совместное владение с Tauri. Команды выпускают приложения на Electron сегодня и параллельно прототипируют версию на Tauri для пользователей с медленным интернетом. Один рендерер — две оболочки.

Кастомизация нативного title-бар. Electron 36+ предоставляет полноценный API для наложения оконных контролов на Windows 11 и эффекта прозрачности (Vibrancy) на macOS. Визуальный признак «это Electron-приложение» наконец исчез.

Внимание к безопасности цепочки поставок. SBOM (Software Bill of Materials) и подпись через sigstore стали обязательными для федеральных заказчиков США по EO 14028. Закладывайте воспроизводимые сборки и подписанные npm-зависимости с самого начала.

Модернизируйте десктопный стек

Всё ещё на Electron 24 или webpack? Обсудим, как обновиться.

Наша команда обновляла продакшен-приложение на Electron с версии 18 до 41, заменяла webpack на electron-vite и переписывала пайплайны автообновления — всё это без единого простоя, который мог бы заметить пользователь. Свяжитесь с нами — и мы поможем вам с апгрейдом.

Позвоните нам → Напишите нам →

KPI, которые отслеживают с первого дня в продакшене

Доля сессий без падений (цель >99,5%). Время холодного старта по P95 (цель <3 с на ноутбуке 2022 года). Использование RAM через 1 час работы по P95 (отслеживайте по вью; алертите при росте). Доля успешных автообновлений (цель >95%; всё ниже 90% — повод немедленно разобраться). Время до первого интерактива (цель <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-стильные тулбары или Fluent Design на Windows) — выбирайте нативные решения. Если достаточно одного приложения на трёх ОС с умеренным брендированием — подойдёт Electron.

FAQ

Electron всё ещё актуален в 2026 году или пора переходить на Tauri?

Electron остаётся самым практичным выбором, когда у вас веб-команда и нужно одинаковое поведение на трёх операционных системах. Tauri 2.0 хорош для рынков с ограниченным трафиком и развёртываний, где важна безопасность, но взамен придётся тестировать три движка WebView. Для большинства SaaS-проектов на React Electron по-прежнему выигрывает по скорости вывода на рынок и согласованности.

Сколько 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 — зрелый. Разница с нативными приложениями по нагрузке на CPU меньше 10% на типичных звонках с 4–8 участниками на оборудовании 2022 года и новее. Для профессионального вещания в 4K при 60 кадрах в секунду нативные пайплайны пока остаются впереди.

Какой минимальный MVP на Electron мы можем выпустить?

С senior-инженером и шаблонами electron-вайт за 6 недель и примерно 1,8–3 млн ₽ вы получите подписанное автообновляемое приложение из 5 экранов под Mac и Windows. Это без EV-сертификата и аккаунта Apple Developer. Для релизной версии с полноценным тестированием и поэтапным запуском закладывайте 4,5–6 млн ₽.

Пройдут ли Electron-приложения аудиты SOC 2 и ISO 27001?

Да, многие проходят — Slack, 1Password, Linear. Аудиторы проверяют практики подписи кода, проверку подписи автообновлений, защиту IPC, опцию согласия на отправку отчётов о сбоях и SBOM зависимостей. Заранее подготовьте документ с моделью угроз и SECURITY.md — десктоп-специфичный чек-лист закроется уже в первом цикле аудита.

Как обрабатывать апгрейды Electron между мажорами?

Планируйте спринт на обновление каждый квартал — один мажорный релиз за спринт помогает держать объём изменений под контролем. Типичные проблемы: несоответствие ABI нативных модулей (решается пересборкой через electron-rebuild), устаревшие API (обращайте внимание на release notes) и регрессии в CSS, связанные с Chromium. На мажорный апгрейд в приложении среднего размера с нашей архитектурой уходит обычно 2–3 дня. Напишите нам, если хотите получить наш чек-лист для обновлений.

Гид по реализации

Как реализовать видеостриминг в вашем приложении

Серверная часть, SDK и клиентская интеграция — это playbook, который мы применяем в каждом десктопном проекте с фокусом на видео.

Технический стек

Лучшие технологии для приложений видеостриминга

WebRTC, LL- HLS, DASH — и какая комбинация подходит десктопному клиенту.

Планирование бюджета

Из чего складывается стоимость приложения для видеоконференций

Постатейная стоимость веб- и десктопных видеоклиентов на основе нашего портфеля проектов.

Экспертиза по LiveKit

Эксперты по разработке на LiveKit

Как мы интегрируем LiveKit в Electron-клиенты для видеосвязи через WebRTC.

QA-playbook

Тестирование на каждом этапе разработки продукта

Наши процессы тестирования для десктопа, мобильных устройств и веба, включая smoke-тесты, специфичные для Electron.

Готовы выпустить десктопное приложение на Electron?

Фора Софт выпускает десктопные клиенты на Electron с 2017 года — для видеоконференций, прямых трансляций, e-learning и финтеха. Мы покрываем весь стек: архитектуру, Electron + React + нативные модули, подпись кода, автообновление и усиление безопасности под корпоративные аудиты. Если ваша команда рассматривает разработку десктопного приложения на Electron для нового продукта или планирует переход с устаревшего стека, мы поможем объективно оценить объём работ.

Запустите проект

Свяжитесь с нашим CTO для обсуждения деталей.

Мы разберём ваши цели, подберём стек и сроки, а также назовём прозрачный диапазон бюджета — без навязчивых продаж, только инженерия.

Позвоните нам → Напишите нам →

  • Технологии