YotoShelf
Development

Contribute

Set up a local development environment and submit your first merge request. YotoShelf is built to welcome AI-assisted contributors.

YotoShelf is open source (MIT) and actively maintained. Contributions are welcome — bug fixes, new features, documentation improvements, and test coverage all count.

Before you start

Read AGENTS.md in the repository root before making any changes. It documents the required workflow, architecture constraints, and the validation checklist every merge request must pass. The site you are reading is a rendering — the repository file is the source of truth.

AI-assisted contributors should fetch /llms-full.txt for a complete machine-readable rendition of this documentation.

Sections in this guide

  • How It Works — the AGENTS.md contract summarised: stop conditions, blast radius limits, the one-thing-at-a-time rule
  • Architecture — Go + huma + SQLite/sqlc/goose; Astro 6/Svelte 5 frontend; go-yoto client; design system submodule
  • Dev Loop — clone, mise, just recipes, fixture seeding, E2E
  • CI — the yotoshelf/ci catalog components, what each gate checks, the renovate preset
  • Conventions — file-size limits, structural conformity, conventional commits, i18n

Quick orientation

git clone --recurse-submodules https://gitlab.com/yotoshelf/yotoshelf.git
cd yotoshelf
mise install   # pins Go, Node, sqlc, golangci-lint from .mise.toml
just dev       # backend :8080 + frontend :4300, hot reload

After every change, run just check. If it passes locally, it passes in CI.