A fully-featured, bilingual code editor designed for the developers of Bangladesh - built with the power of VS Code and the identity of a nation.
Bangladesh Code is an official-grade code editor built for the Government of Bangladesh. It combines the familiar power and interface of Visual Studio Code with a fully Bengali-localized experience, government branding, and built-in tools tailored for public sector software development.
Think of it as VS Code, but ours — বাংলায়, বাংলার জন্য।
- Monaco Editor — The same editor engine that powers VS Code
- Syntax Highlighting — HTML, CSS, JavaScript, PHP, JSON, Markdown, and more
- Multi-tab Editing — Open, switch, and manage multiple files simultaneously
- Undo/Redo — Full content-level undo/redo history per file
- Auto Save — Optional real-time saving to disk
- Minimap — Toggleable code minimap navigation
- Find & Replace — Global search across all files with case sensitivity, whole word, and regex support
- Full File Tree — Browse your project folders just like VS Code
- Create / Rename / Delete — Files and folders with confirmation dialogs
- Copy / Cut / Paste — Clipboard operations across the file tree
- Folder Context Actions — New file/folder inside any subfolder
- Right-click Context Menu — All standard operations at your fingertips
- Dynamic Project Name — Sidebar shows the actual opened folder name
- Integrated Terminal — xterm.js powered terminal built into the editor
- Shell Support — PowerShell (Windows), zsh (macOS), bash (Linux)
- PTY Backend — Real pseudo-terminal via
node-ptyfor full compatibility - Sandbox Mode — Optional restricted terminal execution for security
- Complete Bengali Translation — Every menu, button, dialog, and tooltip
- Instant Language Toggle — Switch between বাংলা and English on the fly
- Bengali Input Support — Type and code in Bangla natively
- Unicode First — UTF-8 throughout,
Noto Sans Bengalifont family
- Light & Dark Themes — Government-branded color schemes
- CSS Variable System — Full theme customization via CSS custom properties
- Custom Icon Themes — VS Code Flat and Government Default icon sets
- Adjustable Font Size — Increase/decrease from sidebar or settings
- Sidebar Position — Left or right, your choice
- Gov-Branded UI — Official Bangladesh Government green color palette (
#006A4E) - Offline Mode — Block all network requests for classified work
- Telemetry Blocker — Built-in script blocker for analytics/telemetry
- SSL Verification — Configurable SSL certificate checking
- Sandbox Execution — Run code in restricted mode when enabled
- In-App Update Notifications — Bell icon in status bar with amber dot
- One-Click Download & Install — Download updates without leaving the editor
- Manual Update Option — Check for updates from Settings > About
- Git Status Panel — View branch, changes, and file statuses
- Init / Commit / Push / Pull — All basic Git operations from the sidebar
- Terminal Integration — Full Git CLI available in the integrated terminal
- Extension Marketplace — Browse and install Bengali-focused extensions
- Bangla Spellchecker — Spellcheck for Bengali comments and strings
- PHP Runner — Run PHP directly from the editor
- C/C++ Pack — Compile and debug C/C++ code
- Command Palette —
Ctrl+Shift+Pfor quick access to all commands - Keyboard Shortcuts — Fully customizable keybindings
- Problems Panel — Static analysis for code quality warnings
- Live HTML Preview — See your HTML output in real-time
- Documentation Panel — Built-in coding guidelines and security directives
- Go to Line — Navigate to any line number instantly
- Code Folding & Bracket Matching — Advanced editor features built-in
# Clone the repository
git clone https://github.com/beingniloy/bdcode.git
cd bdcode
# Install dependencies
npm install# Web-only mode (browser at localhost:5173)
npm run dev
# Desktop mode (Electron + Vite hot reload)
npm run desktop# Build for production (web)
npm run build
# Build Windows installer (.exe)
npm run build:win
# Build macOS installer (.dmg)
npm run build:mac
# Build Linux package (.AppImage)
npm run build:linux
# Type check
npm run lint| Layer | Technology | Purpose |
|---|---|---|
| Frontend | React 18 | UI framework |
| Language | TypeScript | Type safety |
| Bundler | Vite 5 | Fast dev & build |
| Desktop | Electron 34 | Cross-platform desktop app |
| Editor | Monaco Editor | VS Code's editor engine |
| Terminal | xterm.js + node-pty | Real terminal emulation |
| Icons | Lucide React | 1000+ consistent icons |
| Styling | CSS Variables | Custom government theme |
| Auto-Update | electron-updater | In-app update system |
| Packaging | electron-builder | Platform-specific installers |
| CI/CD | GitHub Actions | Automated builds & releases |
bdcode/
├── .github/
│ └── workflows/
│ └── release.yml # CI/CD — build on tag push
├── public/
│ └── images/
│ ├── gov-logo.svg # Government logo
│ ├── digital-bd-logo.svg # Digital Bangladesh logo
│ ├── logo.png # App logo
│ └── qr-code.svg # QR code asset
├── src/
│ ├── main.tsx # React entry point
│ ├── App.tsx # Root component (layout, shortcuts)
│ ├── index.css # Global styles & CSS variables
│ ├── types.ts # TypeScript type definitions
│ ├── translations.ts # Bengali & English translations
│ ├── settingsDef.ts # Settings schema definitions
│ ├── utils.ts # Tree utilities & helpers
│ ├── demoData.ts # Demo files for web mode
│ ├── commands.ts # Command definitions
│ ├── components/
│ │ ├── TitleBar.tsx # Custom window title bar
│ │ ├── Toolbar.tsx # Top toolbar with actions
│ │ ├── ActivityBar.tsx # VS Code-style activity bar
│ │ ├── ExplorerSidebar.tsx # File tree with context menu
│ │ ├── SidebarPanels.tsx # Search, Git, Extensions, Docs, Settings
│ │ ├── EditorArea.tsx # Monaco editor with tabs
│ │ ├── BottomPanel.tsx # Terminal & problems panel
│ │ ├── RightSidebar.tsx # Preview & documentation
│ │ ├── StatusBar.tsx # Status bar with update indicator
│ │ ├── Footer.tsx # Footer component
│ │ ├── ContextMenu.tsx # Reusable context menu
│ │ ├── ConfirmDialog.tsx # Custom alert/confirm/prompt dialogs
│ │ ├── ErrorBoundary.tsx # Error boundary wrapper
│ │ ├── XTerminal.tsx # Terminal component
│ │ └── modals/
│ │ ├── SettingsModal.tsx # Settings with About section
│ │ ├── CommandPalette.tsx # Ctrl+Shift+P palette
│ │ ├── KeybindingsModal.tsx # Keybinding editor
│ │ ├── PublishModal.tsx # Deploy/publish dialog
│ │ └── BugReportModal.tsx # Bug report form
│ ├── contexts/
│ │ ├── FileSystemContext.tsx # Files, tabs, clipboard, undo/redo
│ │ ├── LayoutContext.tsx # Sidebar, panel sizes & state
│ │ ├── ModalContext.tsx # Modal open/close state
│ │ └── SettingsContext.tsx # User settings & theme
│ └── hooks/
│ ├── useContextMenu.ts # Context menu state management
│ ├── useDialog.ts # Custom dialog system (alert/confirm/prompt)
│ ├── useKeybindingHandler.ts # Keyboard shortcut handler
│ └── useTranslation.ts # i18n hook
├── electron.cjs # Electron main process
├── preload.cjs # IPC bridge (contextBridge)
├── run-dev.js # Dev script (Vite + Electron)
├── vite.config.ts # Vite configuration
├── tsconfig.json # TypeScript config
├── package.json # Dependencies & build config
└── LICENSE # MIT License
| Command | Description |
|---|---|
npm run dev |
Start Vite dev server (web mode) |
npm run desktop |
Start Electron with Vite hot reload |
npm run build |
TypeScript check + Vite production build |
npm run lint |
TypeScript type checking only |
npm run preview |
Preview production build locally |
npm run build:win |
Build Windows NSIS installer |
npm run build:mac |
Build macOS DMG |
npm run build:linux |
Build Linux AppImage |
| Shortcut | Action |
|---|---|
Ctrl+S |
Save current file |
Ctrl+Shift+S |
Save all files |
Ctrl+Z |
Undo |
Ctrl+Shift+Z |
Redo |
Ctrl+N |
New file |
Ctrl+B |
Toggle sidebar |
Ctrl+`` |
Toggle terminal |
Ctrl+Shift+P |
Command palette |
Ctrl+Shift+F |
Global search |
Ctrl+, |
Open settings |
Ctrl+K Ctrl+S |
Open keyboard shortcuts |
F2 |
Rename (in explorer context menu) |
Delete |
Delete (in explorer context menu) |
Pre-built installers are available on the Releases page.
| Platform | File | Installer |
|---|---|---|
| Windows | .exe |
NSIS installer with Start Menu shortcut |
| macOS | .dmg |
Drag-to-Applications disk image |
| Linux | .AppImage |
Portable executable |
Bangladesh Code uses the official Government of Bangladesh green palette:
| Token | Hex | Usage |
|---|---|---|
--gov-green |
#006A4E |
Primary actions, buttons, active states |
--gov-green-dark |
#005A42 |
Hover states, dark accents |
--gov-green-light |
#00875A |
Links, highlights |
--gov-red |
#DC2626 |
Danger actions, errors |
Contributions are welcome! Please read our guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
git clone https://github.com/beingniloy/bdcode.git
cd bdcode
npm install
npm run desktopFor security vulnerabilities, please contact the maintainers directly. Do not open public issues for security-related bugs.
This project is licensed under the MIT License — see the LICENSE file for details.
MIT License — Copyright (c) 2026 Bangladesh Code
- Visual Studio Code — Inspiration and Monaco Editor
- Electron — Cross-platform desktop framework
- Monaco Editor — The editor engine
- xterm.js — Terminal emulation
- Lucide — Icon library
- React — UI framework
- Vite — Build tool
Made with ❤️ for Bangladeshi Coder
What if VS Code was built by the Bangladesh Government? Now you know.