Development setup
SkillPouch is two repositories:
skillpouch: the API, web app, landing page, these docs and the shared packagesskillpouch-cli: the command-line client, in Rust
This page covers the first. The layout is described in Architecture.
Run it locally
Section titled “Run it locally”You need Node.js 24+, pnpm 10 and Docker.
pnpm installcp apps/api/.env.example apps/api/.envpnpm dev:db # Postgres in Dockerpnpm db:migratepnpm dev # API, web app and landing page| What | Where | Alone |
|---|---|---|
| Web app | localhost:5173 | pnpm dev:web |
| API | localhost:8080 | pnpm dev:api |
| Landing | localhost:4321 | pnpm dev:site |
| Docs | localhost:4322 | pnpm --filter @skillpouch/docs dev |
Use the web app’s development sign-in for local work; you don’t need GitHub or Google apps.
Checks
Section titled “Checks”Every change has to pass these; CI runs the same:
pnpm format:checkpnpm lintpnpm typecheckpnpm testpnpm contracts:generate && git diff --exit-code -- packages/contracts/generatedpnpm openapi --checkThe API’s integration tests need a real Postgres. Point them at one with
TEST_DATABASE_URL, for example
postgres://postgres:postgres@localhost:55432/postgres. Run a single file
with pnpm --filter @skillpouch/api exec vitest run <path>.
The browser end-to-end tests (pnpm --filter @skillpouch/web e2e, with
Playwright) take several minutes and don’t run in CI.
Contributing
Section titled “Contributing”Issues and pull requests are welcome.
- Keep changes focused, and add a test for every behavior change.
- Update these docs in the same pull request when something people can see changes.
- Contributions are accepted under the
Developer Certificate of Origin:
sign off your commits (
git commit -s). - Report security issues privately, not in an issue (Security).
The code is licensed under AGPL-3.0-only.