One click to ignite your entire dev environment.
Open IDE Β· Launch terminal Β· Run startup commands Β· Track time Β· Open browser β all at once.
- Why DevIgnite?
- Features
- Tech Stack
- Getting Started
- Architecture
- Project Configuration
- Keyboard & UI Concepts
- Database
- Supported Project Types
- Supported IDEs
- Contributing
- Roadmap
- License
Every developer has a ritual when starting work on a project: open the IDE, fire up a terminal, cd into the directory, activate the virtualenv, run the server, open the browser at localhost:3000... It's repetitive, error-prone, and fragmented across tools.
DevIgnite collapses that entire ritual into a single button press.
It's a local desktop app β no cloud, no account, no telemetry. Your projects, your machine, your data.
| Feature | Description | |
|---|---|---|
| β‘ | Start Work | One-click launches IDE, terminal, startup commands, and browser |
| π’ | Multi-step Startup | Define ordered startup steps (blocking or background) per project |
| β±οΈ | Time Tracking | Automatic session logging, daily streaks, and productivity charts |
| πΏ | Git Status | Live branch name, dirty indicator, ahead/behind counts in the sidebar |
| π | Env Management | Per-project .env switching (dev / test / staging / prod) |
| π’ | Workspaces | Group projects and start/stop all of them with one click |
| π | Port Manager | Detects conflicts before launch β kill, increment, or cancel |
| π | Log Viewer | Real-time streamed logs with current/previous session tabs |
| π | Auto Detection | Detects project type, default command, port, and IDE from the filesystem |
| π₯οΈ | IDE Aware | Scans your system for installed IDEs and lets you pick per project |
| Layer | Technology | Version |
|---|---|---|
| Runtime | Electron | ^29.0.0 |
| Build | Electron Forge + Vite | ^7.11.1 / ^5.4.21 |
| UI | React | ^18.2.0 |
| Icons | lucide-react | ^0.344.0 |
| Database | better-sqlite3 | ^9.6.0 |
| IDs | uuid | ^9.0.0 |
- Node.js 18+ (LTS recommended)
- npm 9+
- Windows: Visual C++ Build Tools β required to compile
better-sqlite3native bindings
macOS / Linux users: Build Tools are not required. Xcode Command Line Tools (macOS) or
build-essential(Linux) are sufficient.
git clone https://github.com/vsmidhun21/DevIgnite.git
cd DevIgnite
npm installnpm startLaunches the app with hot reload and DevTools open. Vite serves the renderer on a local dev server; Electron loads it automatically.
npm run makeProduces out/make/squirrel.windows/x64/DevIgniteSetup.exe on Windows (.dmg / .deb on other platforms via the respective Forge makers).
Important build rules β do not modify these without understanding the consequences:
"type": "module"must not be present inpackage.jsonβ Electron Forge's Vite plugin requires CJS."main"must be".vite/build/main.js", notsrc/main.js.- Use
better-sqlite3v9.6.0 with Electron v29 β newer combinations require VS Build Tools on Windows and may hang duringmake.
DevIgnite is divided into three layers with strict separation of concerns:
devignite/
βββ core/ # Pure Node.js business logic β no Electron imports
β βββ db/ # SQLite + migrations
β βββ execution-manager/ # START WORK orchestrator
β βββ git-service/ # Branch, hash, dirty, ahead/behind
β βββ project-manager/ # CRUD + SQL
β βββ time-tracker/ # Sessions, streaks, stats
β βββ port-manager/ # TCP probe, netstat, kill
β βββ env-manager/ # .env detection + parsing
β βββ ide-detector/ # System IDE scan
β βββ log-manager/ # File-based log rotation
β βββ ...
β
βββ shared/ # Constants shared between main and renderer
β βββ constants/index.js # IPC channel names, defaults
β
βββ src/
βββ main.js # Electron main process β 40 ipcMain handlers
βββ preload.js # contextBridge API exposed as window.devignite
βββ App.jsx # Root state + routing
βββ components/ # All React UI components
Design principle: core/ has zero Electron dependencies and is designed to be reusable from a CLI in the future. All Electronβrenderer communication goes through typed IPC channels defined in shared/constants.
Each project stores:
| Setting | Description |
|---|---|
name / path |
Display name and absolute path |
type |
Auto-detected or manually set (Django, React, etc.) |
command |
Single run command (used if no startup steps defined) |
startup_steps |
JSON array of ordered steps with label, cmd, wait |
ide / ide_path |
Selected IDE and optional custom executable path |
port / url |
Dev server port and browser URL to open |
active_env |
Active environment (dev / test / staging / prod) |
open_terminal |
Whether to open a terminal on Start Work |
open_browser |
Whether to open the browser after server starts |
install_deps |
Whether to auto-run install before startup |
[
{ "label": "Install deps", "cmd": "pip install -r requirements.txt", "wait": true },
{ "label": "Run migrations", "cmd": "python manage.py migrate", "wait": true },
{ "label": "Start server", "cmd": "python manage.py runserver", "wait": false }
]wait: trueβ blocking step; must exit 0 before the next step runs.wait: falseβ background process (your long-running server).- Empty array
[]β falls back to the singlecommandfield.
- Ignite button β the primary Start Work CTA. Turns red and shows a live timer while the project is running.
- Env tabs β
devis always active.test/staging/prodare enabled only if a matching.env.*file exists in the project folder. - Port flyout β the status bar shows all listening ports in the
3000β9999range, matched to your projects by port number. - Modals β do not close on outside click. This is intentional to prevent accidental data loss.
DevIgnite uses a local SQLite database. No data ever leaves your machine.
- Location:
%APPDATA%\devignite\devignite.sqlite(Windows) /~/Library/Application Support/devignite/(macOS) - Mode: WAL (Write-Ahead Logging) for safe concurrent reads
- Migrations: Fully incremental β
CREATE TABLE IF NOT EXISTS+ safeALTER TABLEon every launch
Tables: projects, sessions, groups
| Type | Default Command | Default Port |
|---|---|---|
| Django | python manage.py runserver |
8000 |
| Flask | flask run |
5000 |
| FastAPI | uvicorn main:app --reload |
8001 |
| React | npm start |
3000 |
| Next.js | npm run dev |
3000 |
| Angular | ng serve |
4200 |
| Vue | npm run dev |
5173 |
| Nuxt | npm run dev |
3000 |
| Laravel | php artisan serve |
8080 |
| Spring Boot | mvn spring-boot:run |
8080 |
| Node.js | node index.js |
3001 |
| Python | python main.py |
β |
| Custom | (user defined) | β |
Auto-detection scans for signal files (manage.py, package.json, pom.xml, etc.) and pre-fills all defaults.
DevIgnite scans your system PATH and common install directories to find available IDEs:
VS Code Β· Cursor Β· Windsurf Β· Zed Β· IntelliJ IDEA Β· PyCharm Β· WebStorm Β· Rider Β· CLion Β· Sublime Text Β· Vim / Neovim Β· Notepad++
A custom executable path can be set per-project for any IDE not auto-detected.
Contributions are welcome. Please open an issue first to discuss what you'd like to change.
# 1. Fork the repo and clone your fork
git clone https://github.com/YOUR_USERNAME/DevIgnite.git
cd DevIgnite
# 2. Install dependencies
npm install
# 3. Create a feature branch
git checkout -b feat/your-feature-name
# 4. Start the dev server
npm start
# 5. Commit and push, then open a PR against mainA few conventions to keep in mind:
core/must remain Electron-free. All Node built-ins are fine;electronis not.- All IPC channel names live in
shared/constants/index.jsβ do not hardcode strings inmain.jsor components. - Do not add
"type": "module"topackage.json.
- Settings page β theme toggle, default IDE, global startup behavior
- Project sorting β by name / type / last run / time today
- System tray notifications on start/stop
- Squirrel auto-updater
- Import / export projects as JSON backup
- CLI interface (reusing
core/directly)
MIT Β© 2026 Midhun V S


