Thank you for your interest in contributing to Base0. This guide is intended to help you understand the development process, potential areas for contribution, and how to submit successful Pull Requests.
Before contributing, we recommend reviewing the core documentation to understand the project's architecture and future direction:
- Project Plan: See docs/plan.md for the architectural overview and features.
- Future Roadmap: See docs/roadmap.md for planned phases and upcoming features.
We welcome contributions in several forms:
- Reporting Bugs: If you encounter unintended behavior, please open an Issue describing the reproduction steps.
- Suggesting Features: Check the Roadmap first. If your idea isn't listed, propose it via an Issue.
- Codebase Improvements: You can pick up "Good First Issues" or work on roadmap items (Vector DB, Realtime, Enterprise Auth).
- Documentation: Improving the clarity of our specific guides or inline comments.
- Runtime: Bun (v1.2 or higher)
- Container: Docker (required for the local PostgreSQL instance)
-
Clone the repository:
git clone https://github.com/itisrohit/base0.git cd base0 -
Install dependencies:
bun install
-
Configure Environment:
cp .env.example .env
-
Start Infrastructure:
docker-compose up -d db
-
Initialize Database:
bun run db:push
-
Start Development Server: This will start both the API and the Dashboard concurrently:
bun run dev
- Dashboard: http://localhost:5173
- API: http://localhost:3001
We use Turborepo to manage tasks across the workspace.
bun run build- Build all apps and packages.bun run lint- Lint all code using Biome.bun run check- Run type-checking and linting verification.
apps/api: The Hono-based backend core.apps/dashboard: The React 19 mission control dashboard.packages/db: Shared Drizzle ORM schema and database utilities.
- Fork the Repository: Create a fork of the repository to your own GitHub account.
- Create a Branch: Create a new branch from
mainwith a descriptive name (e.g.,feat/vector-searchorfix/auth-bug). - Implement Changes: write your code, ensuring it adheres to the project's coding standards.
- Verify: Run
bun run checkto ensure your code passes all linting and type-safety checks. - Commit: Use Conventional Commits for your messages (e.g.,
feat: add realtime websocket server). - Submit PR: Push your branch and open a Pull Request against the
mainbranch. Provide a clear description of the changes and link any related issues.
Please copy and paste the following template into your PR description:
## Summary
<!-- Explain what this PR does and why it is needed -->
## Type of Change
<!-- Please delete options that are not relevant -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
## Checklist
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] My changes generate no new linting or build errors- Strict Typed: We enforce strict TypeScript configurations. Avoid usage of
any. - Linter: We use Biome. Ensure your code is formatted before submission.