Skip to content

Development Guide

FitFeed follows a clean architecture pattern and uses modern tools for development.

Getting Started

Prerequisites

To contribute, you'll need the following tools:

  • Go 1.25+
  • Docker & Docker Compose
  • Node.js & Bun
  • Air (for Go hot-reloading)

Initial Setup

FitFeed uses a unified development environment managed by a root Makefile:

make init

This command checks for required tools and initializes your local config.toml.

Running for Development

To start the database, apply migrations, and start backend services and frontend in parallel:

make dev

To stop the development environment:

make dev-stop

LLM Usage Policy

FitFeed encourages developers to use modern Large Language Models (LLMs) to increase productivity. However, the following rules apply:

  1. Human Review: All code generated by an LLM must be thoroughly reviewed by a human developer.
  2. Responsibility: The author of a pull request (PR) takes full responsibility for the submitted code.
  3. Accountability: Authors must be able to:
    • Explain any part of the code they submitted.
    • Answer code-related questions during PR reviews.
    • Adjust any part of the code based on review feedback or project decisions.

Coding Standards

  • Go: Follow standard Go idioms and gofmt. Use slog for structured logging.
  • React: Use TypeScript for type safety. Follow functional component patterns and use Ant Design components.
  • Git: Use descriptive commit messages. Work on feature branches and submit PRs to main.
  • Database: All schema changes must be implemented as migrations in the dbm service.