Contributing
Set up the VitNode monorepo locally, run tests and typechecks, and submit pull requests.
Contributions to VitNode - whether bug fixes, new features, or documentation improvements - are always welcome!
Quick start
Clone the repository, start local containers, and launch the dev server:
Setup VitNode monorepo
bun install
bun run docker:dev
bun devpnpm install
pnpm docker:dev
pnpm devnpm install
npm run docker:dev
npm run devOpen http://localhost:3000 to view the website, AdminCP, and live docs.
Monorepo Layout
| Directory | Role |
|---|---|
packages/vitnode | @vitnode/core package containing routing, auth, models, and UI primitives |
apps/web | Frontend TanStack Start application and documentation portal |
apps/api | Standalone Hono REST/RPC API server |
plugins/* | First-party plugins (@vitnode/blog, @vitnode/example) |
Local Validation Checks
Before opening a pull request, run the same checks that execute in GitHub Actions CI:
1. Typecheck
Typecheck
bun run typecheckpnpm typechecknpm run typecheck2. Run Tests
Run unit tests
bun testpnpm testnpm test3. Build All Workspaces
Build workspaces
bun run buildpnpm buildnpm run buildPull Request Guidelines
- Focused PRs: Keep changes scoped to a single feature or bug fix.
- Follow Conventions: Follow repository conventions from
AGENTS.md(noany, arrow function components, semantic tokens). - Tests: Add unit tests for non-trivial logic using Vitest.