CONTRIBUTING.md
Rama main · réplica de lectura del repositorio original.
# Contributing to Huell
This covers running Huell from source. For how the product behaves — deployment, configuration, migrating docs — see the [hosted docs](https://huell-docs.hiesenbug.dev) instead; this file is about the codebase itself.
## Project layout
| Piece | What it is |
| --- | --- |
| `apps/web` | The dashboard — Next.js. Auth, org/project/member management, GitHub App connect, docs.zip upload. |
| `apps/builder` | The build worker — polls for queued builds, clones the repo (or reads an uploaded zip), converts `docs.json` to Starlight's format, runs `astro build`, deploys atomically. |
| `packages/db` | Drizzle ORM schema + SQLite client, shared by both apps. |
| `packages/docs-core` | The `docs.json` → Starlight migration logic, shared by the build worker and the `huellup` CLI. |
| `packages/cli` | `huellup` — the companion CLI and MCP server, published to npm. |
| `templates/docs-site` | The Astro Starlight template every project's docs site is built from. |
| `deploy/Caddyfile` | Reverse proxy: routes the dashboard and every project's subdomain, TLS via Caddy's on-demand certificates. |
## Local development
```bash
pnpm install
pnpm db:migrate # applies packages/db/migrations to $DATA_DIR
pnpm dev:web # dashboard at localhost:3000
pnpm worker # build worker, separate terminal
```
You'll need Google OAuth credentials in `.env` even for local dev (see the [Configuration guide](https://huell-docs.hiesenbug.dev/getting-started/configuration)) — there's no auth bypass.
## Before opening a PR
```bash
pnpm typecheck
pnpm build:web
```
Both run in CI on every push and pull request — same commands, so failures show up locally first.