Contributing to Loryth

Every contribution makes Loryth better for everyone.

Getting started

Loryth is a monorepo with Python microservices on the backend and a React/React Native frontend. To get started:

  1. Fork and clone the repository
  2. Install prerequisites: Docker, Python 3.13+, Node.js 20+, pnpm
  3. Start infrastructure: docker compose up -d postgres rabbitmq minio
  4. Pick a service and run make setup && make dev
  5. For the UI: cd ui && pnpm install && pnpm dev:web

Code standards

Python services use Ruff for linting/formatting, mypy for type checking, and pytest for testing. The UI uses ESLint, Prettier, and Vitest/Playwright.

All code must pass CI checks before merge. Run make lint && make test in any service directory to verify locally.

Pull requests

Use Conventional Commits for commit messages (e.g., feat(grocery): Add recipe import). Keep PRs focused on a single change. Include tests for new functionality.

Ways to contribute

  • Report bugs or suggest features via GitHub Issues
  • Improve documentation
  • Add tests for existing code
  • Fix open issues labeled “good first issue”
  • Build new add-ons or extend existing ones
  • Improve the UI/UX across web and mobile