A blazing-fast, ultra-lightweight (~18 MB) C/C++ IDE designed for Competitive Programming and rapid development.
Say goodbye to heavy Electron shells. Built on a Rust-powered Tauri backend and Monaco Editor frontend for instant, sub-second startup times and micro memory footprints.
You can download the Windows installer from the latest/top GitHub Release:
Download Doom Code for Windows
Get up and running locally in three quick commands:
# 1. Clone the project
git clone https://github.com/ig-vikas/Doom-Code-IDE.git && cd Doom-Code-IDE
# 2. Install package dependencies
npm install
# 3. Spin up in Dev mode
npm run tauri devNote: Ensure you have g++ configured in your system PATH.
- ๐ช Download for Windows
- ๐ Why Choose Doom Code?
- ๐ธ Screen Showcase
- โจ Core Pillars & Features
- ๐งช Predefined Compiler Profiles
- ๐ CP Snippets Reference Cheatsheet
- โ๏ธ Custom Settings Schema
- โจ๏ธ Keybinding Shortcuts
- ๐ Codebase Architecture
- ๐ฎ Future Roadmap
- ๐ค Contributing & Support
Traditional modern IDEs (like VS Code or standard Electron shells) boot up slowly, consume massive chunks of RAM, and require extensive third-party configuration to compile simple files.
Doom Code is built from the ground up for speed, lightness, and competitive coding efficiency.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ React + Monaco UI โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
โ Tauri IPC
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโ
โ Rust Backend Core โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
โ Native OS Process
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโ
โ g++ compiler & xterm โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Featherweight Size: ~18 MB installer footprint.
- Instant Boots: Re-opens your session and tabs in < 1 second.
- CP-Built: Built-in solve count trackers, expected-vs-actual output check panel, and snippet-injected algorithms.
A clean, focused workspace combining Monaco Editor (the heart of VS Code), a custom file tree explorer, multi-tab navigation, and an interactive terminal.
Quick-access action dial featuring smooth rotation animations. Launch command palettes, run compile jobs, or switch profiles in an instant.
Visualize your daily competitive programming solve goals, speed milestones, and stats inside a sleek graphical dashboard.
Modify autosave timers, custom layouts, compiler location paths, and aesthetic color tokens instantly.
Experience full IntelliSense, multi-cursor editing, bracket pair colorization, guides, auto-close quotes, and smooth scrolling parameters.
- Expected vs Actual Diff Viewer: Run code against test suites and view side-by-side output mismatches.
- Snippets Injection: Pre-compiled standard structures (Graphs, Math, Trees) ready to be loaded via standard short prefixes.
- Solve progression Tracker: Log your problem solving numbers over time.
- Tauri 2.0 Rust Bindings: Native OS file manipulation, shell command executions, and lightweight process threading.
- Integrated Shell Emulator: Powered by
xterm.jswith auto web-link detection and fit layout addons. - Session Persistence: Auto-save settings and hot exits remember file tabs, layouts, and workspace structures.
Compiler flags and behaviors are configured within src/config/defaultBuildProfiles.ts:
TC(Test Cases Profile)- Flags:
-std=c++17 -O2 -DLOCAL - Timeout: 5000ms
- Use-case: Fast, optimized execution on test suite comparison scripts.
- Flags:
Doom(Standard Buffer - Default)- Flags:
-std=c++17 -O2 -DLOCAL - Timeout: 5000ms
- Use-case: Standard file compiler and runner.
- Flags:
Debug(Validation Profile)- Flags:
-std=c++17 -g -O0 -Wall -Wextra -Wshadow -D_GLIBCXX_DEBUG -DLOCAL - Timeout: 10000ms
- Use-case: Verbose warning reports, array index checks, and GDB compatibility support.
- Flags:
Release(Production Optimization)- Flags:
-std=c++17 -O2 -Wall - Timeout: 30000ms
- Use-case: High-performance benchmark generation.
- Flags:
Save hours of boilerplate generation. Type the prefix and hit Tab/Enter in the editor:
| Prefix | Description |
|---|---|
cptemp |
Pre-configured C++ Competitive Programming boilerplate template |
fastio |
Boosted standard input/output streams configurations |
segtree / lazysegtree |
Segment Tree (Point updates) / Lazy Propagation (Range updates) |
bit |
Binary Indexed Tree (Fenwick Tree) class setup |
dsu |
Disjoint Set Union with size heuristics & path compression |
sparse |
Sparse Table for Static Range Minimum Queries (RMQ) |
pbds |
Policy-Based Data Structures (Ordered Set & Multi-Set) |
| Prefix | Description |
|---|---|
adjlist / wadjlist |
Unweighted / Weighted Adjacency Lists |
dfs / bfs |
Depth-First Search / Breadth-First Search snippets |
dijkstra |
Single Source Shortest Path finding |
bellman |
Bellman-Ford shortest paths |
floyd |
Floyd-Warshall All-Pairs Shortest Path |
toposort |
Topological Sorting on DAGs |
kruskal |
Minimum Spanning Tree generation |
lca |
Binary Lifting for Least Common Ancestor |
| Prefix | Description |
|---|---|
modpow / modinv
|
Modular Exponentiation / Modular Inverse calculation |
sieve |
Prime numbers generation via Sieve of Eratosthenes |
ncr |
Modular Combinations calculation with factorial caching |
extgcd |
Extended Euclidean Algorithm ($ax + by = \gcd(a, b)$) |
miller |
Miller-Rabin Primality check |
crt |
Chinese Remainder Theorem implementation |
| Prefix | Description |
|---|---|
dpknapsack |
0/1 Knapsack recurrence template |
dplis |
Longest Increasing Subsequence in |
kmp |
Knuth-Morris-Pratt substring pattern matcher |
zfunc |
Z-algorithm for string prefix matching |
manacher |
Find longest palindromic substring in |
sufarray |
Suffix Array and LCP calculation |
Preferences are structured within defaultSettings.ts. Below is a breakdown of the standard schema format:
{
"editor": {
"fontFamily": "Fira Code, Consolas, monospace",
"fontSize": 15,
"lineHeight": 1.7,
"tabSize": 4,
"minimap": false,
"bracketPairColorization": true,
"autoClosingBrackets": "always"
},
"ui": {
"theme": "tokyo-night",
"editorColorScheme": "one-dark-pro",
"sidebarWidth": 260,
"sidebarVisible": true,
"bottomPanelHeight": 250
},
"build": {
"compilerPath": "g++",
"defaultProfile": "Doom",
"saveBeforeBuild": true
},
"terminal": {
"fontFamily": "JetBrains Mono, monospace",
"fontSize": 14,
"scrollback": 5000
},
"files": {
"autoSave": "off",
"exclude": [".git", "node_modules", "target", "*.exe", "*.o"]
}
}| Shortcut | Command / Action |
|---|---|
Ctrl + Shift + P |
Open Command Palette / Fuzzy Finder |
Ctrl + S |
Save Active Buffer |
Ctrl + B |
Hide / Show File Explorer Sidebar |
Ctrl + J |
Open / Collapse Terminal Drawer |
Ctrl + Shift + B |
Compile & Run (Active compiler profile) |
Ctrl + , |
Launch Preferences Window |
doom-code/
โโโ src/ # React 18 UI Shell
โ โโโ components/ # Editor workspace, Terminal drawer, Radial menu
โ โโโ config/ # Themes, build profiles, shortcuts configuration
โ โโโ editorSchemes/ # Monaco color schemes (Tokyo Night, Catppuccin, One Dark)
โ โโโ hooks/ # UI layout state and window transition handlers
โ โโโ services/ # Frontend operations (Compilation, Search, Files)
โ โโโ stores/ # Zustand state management slices
โ โโโ styles/ # Application styles and CSS resets
โ โโโ themes/ # Base UI theme configurations
โโโ src-tauri/ # Tauri Desktop Core (Rust backend)
โ โโโ src/
โ โ โโโ commands/ # Tauri Command IPC API bridges
โ โ โโโ lib.rs # Main Tauri Application core setup
โ โ โโโ main.rs # Application engine startup
โ โ โโโ state.rs # Shared app instances (terminal states, compiler)
โ โโโ tauri.conf.json # Tauri runtime capabilities config
- ๐ Visual GDB Debugger: Toggle breakpoints, watch variables, and view stack traces within the workspace.
- ๐จ Visual Template Builder: Create custom boilerplate templates and project layouts through an interactive editor.
- ๐ Competitive Programming Syncing: Sync problem sets and submit code solutions directly to Codeforces and AtCoder judges.
- โ๏ธ Clang/LLVM Support: Support for alternative C/C++ compilation suites.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Distributed under the MIT License. See LICENSE for more information.




