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 dev

Open http://localhost:3000 to view the website, AdminCP, and live docs.


Monorepo Layout

DirectoryRole
packages/vitnode@vitnode/core package containing routing, auth, models, and UI primitives
apps/webFrontend TanStack Start application and documentation portal
apps/apiStandalone 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 typecheck

2. Run Tests

Run unit tests
bun test

3. Build All Workspaces

Build workspaces
bun run build

Docs for AI Agents

The documentation portal in apps/web speaks Markdown as well as HTML, so agents and LLM tools can read it without scraping:

URLWhat you get
/llms.txtAn index of every docs page with its title, URL and description
/llms-full.txtThe whole documentation as one Markdown document
/docs/<page>.mdA single page as Markdown, for example /docs/dev/setup.md

Requesting a docs page with an Accept: text/markdown header redirects to its .md twin, so a curious agent gets Markdown without asking twice. Every page also has a Copy Markdown button and an Open in menu for ChatGPT, Claude and friends.


Pull Request Guidelines

  1. Focused PRs: Keep changes scoped to a single feature or bug fix.
  2. Follow Conventions: Follow repository conventions from AGENTS.md (no any, arrow function components, semantic tokens).
  3. Tests: Add unit tests for non-trivial logic using Vitest.

Learn More