Visual, browser-based configuration tool for ESPHome. Pick a board, add components, configure settings — get a ready-to-flash YAML file. No YAML knowledge required.
Try it here ESPForge
- 35+ boards — ESP32, S2, S3, C3, C6, ESP8266, plus M5Stack (Core2, CoreS3, Cardputer, Dial, StampS3, NanoC6), Seeed XIAO (S3, S3 Sense, C6, S2), LilyGO (T-Display AMOLED, T-Beam, T-Watch S3, T-Dongle), Sonoff, and more
- 80+ components — sensors, switches, lights, fans, covers, locks, climate, BLE, IR, media, displays, I/O expanders, mmWave radar (LD2410, LD2450, LD2411S)
- 10 starter templates — Sensor Node, Smart Relay, LED Strip, BLE Gateway, Garage Door, Power Monitor, etc.
- Guided onboarding — template → board → settings → components
- Boards with onboard hardware (buttons, NeoPixels, displays) auto-add those components on selection
- Form-based editing — every field has labels, defaults, and hints
- Visual pin mapper — color-coded board diagram with pin conflict detection
- Automation builder — triggers (boot, interval, button press, sensor threshold), conditions, and actions for switches, lights, fans, covers, locks, numbers
- Full settings — WiFi, fallback AP, static IP, MQTT, API encryption, OTA, logger levels, SNTP time, status LED
- YAML import — load an existing ESPHome
.yamlfile and keep editing it visually - Live YAML preview — syntax-highlighted, updates as you type
- Validation — catches missing WiFi, unassigned pins, empty fields, and conflicts before export
- Secrets file — auto-generates
secrets.yamlfor!secretreferences - Share via URL — encode your project in a shareable link
- Undo / Redo (Ctrl+Z / Ctrl+Shift+Z)
- Save / Load projects as JSON
- Inline project rename in the header
- Light / Dark theme
- Keyboard shortcuts (Ctrl+S save, Ctrl+E export)
- Responsive layout — works on mobile and tablet
npm install
npm run devOpen http://localhost:5173/ESPForge/ in your browser.
npm run buildStatic output is in dist/, ready to deploy anywhere.
The repo includes a GitHub Actions workflow (.github/workflows/deploy.yml) that builds and deploys on push to main:
- Settings → Pages → set Source to GitHub Actions
- Push to
main
ESPForge runs entirely in the browser. Your configuration is never sent to a server. The app builds a structured project in memory and serializes it to valid ESPHome YAML using js-yaml. Share links encode the project as Base64 in the URL hash.
- React 19 + TypeScript + Vite 8
- js-yaml
- No backend — fully static, nothing stored server-side
Issues and PRs welcome. If you'd like to add a board, component, or template, the definitions live in src/data/.
MIT