Thanks for your interest in contributing!
-
Prerequisites: Bun, OpenCode CLI
-
Fork and clone:
# Fork this repo on GitHub, then clone your fork git clone https://github.com/YOUR_USERNAME/opencode-web cd opencode-web/app-prefixable bun install
-
Start development:
# Terminal 1: Start OpenCode server in your project directory cd /your/project opencode serve # Terminal 2: Start Web UI dev server cd opencode-web/app-prefixable bun run dev
- TypeScript with strict mode
- Avoid
anytypes where practical; prefer specific types - Prefer
constoverlet - Early returns over nested if/else
- Single-word variable names where possible
- Rely on type inference; avoid explicit annotations unless necessary
Important: Never hardcode paths in frontend code!
// Correct - use prefix() from base-path context
import { useBasePath } from "../context/base-path";
const { prefix } = useBasePath();
fetch(prefix("/api/session"));
// Wrong - hardcoded path
fetch("/api/session");- Fork the repo
- Create a feature branch (
git checkout -b feature/my-feature) - Make your changes
- Test locally with different BASE_PATH values
- Submit PR with clear description
# Test with custom prefix
BASE_PATH=/myapp/ bun run devThen open http://localhost:3000/myapp/
- Check existing issues before creating new ones
- Be specific about reproduction steps for bugs
- Include browser console errors when relevant
Open a discussion or issue.