Files
openchamber/CONTRIBUTING.md
T
Bohdan Triapitsyn c7bc026b4b refactor: remove legacy Tauri desktop support
Electron updater now uses Electron release metadata only
Removed legacy Tauri package and migration workflow
Replaced Tauri shim usage with the desktop bridge
2026-06-03 02:42:00 +03:00

2.5 KiB

Contributing to OpenChamber

Getting Started

git clone https://github.com/btriapitsyn/openchamber.git
cd openchamber
bun install

Dev Scripts

Web

Script Description Ports
bun run dev:web:full Build watcher + Express server. No HMR — manual refresh after changes. 3001 (server + static)
bun run dev:web:hmr Vite dev server + Express API. Open the Vite URL for HMR, not the backend. 5180 (Vite HMR), 3902 (API)

Both are configurable via env vars: OPENCHAMBER_PORT, OPENCHAMBER_HMR_UI_PORT, OPENCHAMBER_HMR_API_PORT.

Desktop (Electron)

bun run electron:dev

Launches the Electron desktop shell in dev mode.

VS Code Extension

bun run vscode:dev    # Watch mode (extension + webview rebuild on save)

To test in VS Code:

bun run vscode:build && code --extensionDevelopmentPath="$(pwd)/packages/vscode"

Shared UI (packages/ui)

No dev server — this is a source-level library consumed by other packages. During development, bun run dev runs type-checking in watch mode.

Before Submitting

bun run type-check   # Must pass
bun run lint         # Must pass
bun run build        # Must succeed

Code Style

  • Functional React components only
  • TypeScript strict mode — no any without justification
  • Use existing theme colors/typography from packages/ui/src/lib/theme/ — don't add new ones
  • Components must support light and dark themes
  • Prefer early returns and if/else/switch over nested ternaries
  • Tailwind v4 for styling; typography via packages/ui/src/lib/typography.ts

Pull Requests

  1. Fork and create a branch
  2. Make changes
  3. Run the validation commands above
  4. Submit PR with clear description of what and why

Project Structure

packages/
  ui/        Shared React components, hooks, stores, and theme system
  web/       Web server (Express) + frontend (Vite) + CLI
  electron/  Electron desktop shell
  vscode/    VS Code extension (extension host + webview)

See AGENTS.md for detailed architecture reference.

Not a developer?

You can still help:

  • Report bugs or UX issues — even "this felt confusing" is valuable feedback
  • Test on different devices, browsers, or OS versions
  • Suggest features or improvements via issues
  • Help others in Discord

Questions?

Open an issue or ask in Discord.