Skip to content

Contributing

Thank you for your interest in contributing to Logbook! This guide will help you get started.

Repositories

Each Logbook project is its own repository:

  • api - Backend API
  • app - Mobile app
  • web - Landing page
  • sdk - TypeScript SDK
  • devops - Infrastructure
  • docs - This site

Clone the repository you want to work on and follow its getting started guide.

Prerequisites

Before contributing, ensure you have:

  • Node.js 22+
  • pnpm 10+
  • Docker (for local database)
  • Git

Development Workflow

Creating a Branch

bash
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix

Making Changes

  1. Make your changes following the Code Style guide
  2. Run linting and formatting:
    bash
    pnpm check:fix
  3. Run tests:
    bash
    pnpm test

Committing

Write clear, descriptive commit messages:

bash
git commit -m "feat(api): add user preferences endpoint"
git commit -m "fix(app): resolve navigation crash on logout"

Submitting a Pull Request

  1. Push your branch to GitHub
  2. Open a pull request with a clear description
  3. Link any related issues
  4. Wait for review and CI checks to pass

Project-Specific Guidelines

API

  • Run pnpm generate:openapi after modifying controllers
  • Add tests for new endpoints
  • Update the changelog for significant changes

App

  • Test on both iOS and Android simulators
  • Follow the Tamagui design system
  • Update navigation types when adding screens

SDK

  • SDK is auto-generated - modify the API, not the SDK directly
  • Run pnpm generate after API changes
  • Verify exports work correctly

DevOps

  • Always run ./tofu -e <env> plan and read the plan before apply
  • Test changes in the dev workspace first
  • Document stack changes in infra/<stack>/README.md

Built with VitePress