Skip to content

Repository files navigation

বাংলাদেশ কোড (Bangladesh Code)

WHAT IF VS Code Was Built by the Bangladesh Government?

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.

bdcode


Screenshots

Bangladesh Code Editor Screenshot


What is Bangladesh Code?

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 — বাংলায়, বাংলার জন্য।


Key Features

Editor & IDE

  • 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

File Explorer

  • 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

Terminal

  • 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-pty for full compatibility
  • Sandbox Mode — Optional restricted terminal execution for security

Bilingual UI (বাংলা / English)

  • 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 Bengali font family

Theming & Appearance

  • 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

Government & Security

  • 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

Auto-Update System

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

  • 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

Extensions (Planned)

  • 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

Developer Tools

  • Command PaletteCtrl+Shift+P for 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

Quick Start

Prerequisites

Installation

# Clone the repository
git clone https://github.com/beingniloy/bdcode.git
cd bdcode

# Install dependencies
npm install

Development

# Web-only mode (browser at localhost:5173)
npm run dev

# Desktop mode (Electron + Vite hot reload)
npm run desktop

Build

# 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

Tech Stack

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

Project Structure

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

Scripts Reference

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

Keyboard Shortcuts

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)

Download

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

Government Branding

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

Contributing

Contributions are welcome! Please read our guidelines:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Setup

git clone https://github.com/beingniloy/bdcode.git
cd bdcode
npm install
npm run desktop

Security

For security vulnerabilities, please contact the maintainers directly. Do not open public issues for security-related bugs.


License

This project is licensed under the MIT License — see the LICENSE file for details.

MIT License — Copyright (c) 2026 Bangladesh Code

Acknowledgments


Made with ❤️ for Bangladeshi Coder

What if VS Code was built by the Bangladesh Government? Now you know.

About

WHAT IF VS Code Built by Bangladesh Government

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages