Skip to content

Repository files navigation

DevIgnite Banner

⚑ DevIgnite

One click to ignite your entire dev environment.
Open IDE Β· Launch terminal Β· Run startup commands Β· Track time Β· Open browser β€” all at once.

Release Platform Electron React SQLite License


DevIgnite Screenshot DevIgnite Screenshot


Table of Contents


Why DevIgnite?

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.


Features

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

Tech Stack

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

Getting Started

Prerequisites

  • Node.js 18+ (LTS recommended)
  • npm 9+
  • Windows: Visual C++ Build Tools β€” required to compile better-sqlite3 native bindings

macOS / Linux users: Build Tools are not required. Xcode Command Line Tools (macOS) or build-essential (Linux) are sufficient.

Installation

git clone https://github.com/vsmidhun21/DevIgnite.git
cd DevIgnite
npm install

Development

npm start

Launches the app with hot reload and DevTools open. Vite serves the renderer on a local dev server; Electron loads it automatically.

Build for Production

npm run make

Produces 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 in package.json β€” Electron Forge's Vite plugin requires CJS.
  • "main" must be ".vite/build/main.js", not src/main.js.
  • Use better-sqlite3 v9.6.0 with Electron v29 β€” newer combinations require VS Build Tools on Windows and may hang during make.

Architecture

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.


Project Configuration

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

Startup Steps

[
  { "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 single command field.

Keyboard & UI Concepts

  • Ignite button β€” the primary Start Work CTA. Turns red and shows a live timer while the project is running.
  • Env tabs β€” dev is always active. test / staging / prod are enabled only if a matching .env.* file exists in the project folder.
  • Port flyout β€” the status bar shows all listening ports in the 3000–9999 range, matched to your projects by port number.
  • Modals β€” do not close on outside click. This is intentional to prevent accidental data loss.

Database

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 + safe ALTER TABLE on every launch

Tables: projects, sessions, groups


Supported Project Types

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.


Supported IDEs

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.


Contributing

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 main

A few conventions to keep in mind:

  • core/ must remain Electron-free. All Node built-ins are fine; electron is not.
  • All IPC channel names live in shared/constants/index.js β€” do not hardcode strings in main.js or components.
  • Do not add "type": "module" to package.json.

Roadmap

  • 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)

License

MIT Β© 2026 Midhun V S


Built with ⚑ by Midhun V S  ·  Report a bug  ·  Request a feature

About

A powerful desktop application built with Electron and React that allows developers to manage and launch multiple types of projects (Django, Flask, Spring Boot, React, Angular, etc.) from a single interface.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages