-
-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
Nick edited this page Jul 28, 2026
·
1 revision
- Fork the repository
- Clone your fork and follow Development Setup
- Create a feature branch from
main - Make your changes
- Run tests and typecheck (see Testing)
- Submit a pull request
The codebase is organized for readability. Key entry points:
-
Frontend:
app/src/screens/(main UI screens),app/src/components/(shared components) -
Backend routes:
backend/app/routers/(API endpoints) -
Pipeline:
backend/app/pipeline/(the core Open-Write toolchain) -
AI routing:
backend/app/ai/(provider resolution, prompt construction)
- Strict TypeScript with
noUnusedLocals+noUnusedParameters - React 19 functional components with hooks
- Tailwind CSS v4 for styling
- Zustand for shared state
- CodeMirror 6 for editor extensions
- FastAPI + uvicorn
- Type hints on all public functions
- Pydantic models for request/response validation
- Tests use pytest + pytest-asyncio (async_mode = "auto")
-
backend/app/pipeline/is the canonical runtime. Edit it. -
openwrite/is a frozen read-only reference of the upstream methodology. Do not edit gate logic there.
- Run backend tests:
cd backend && uv run pytest - Run frontend tests:
cd app && npm run test -- --run - Typecheck:
cd app && npx tsc --noEmit - Lint:
cd backend && uv run ruff check - Ensure no secrets or API keys are committed
- Open an issue for bugs or feature requests
- For larger changes, open an issue first to discuss direction
- Pull requests are welcome
Welcome to the Open-Write Studio wiki!
This wiki covers everything you need to know about Open-Write — from installation to architecture to contributing.
New here? Start with Getting Started.