Skip to content

Contributing

Thank you for your interest in contributing to FreezerMan! Every contribution -- whether it's a bug fix, a new feature, or improved documentation -- helps make the project better for everyone.

Prerequisites

Make sure you have the following installed before getting started:

Tool Version Install
Bun 1.3+ curl -fsSL https://bun.sh/install \| bash
PostgreSQL 17 Local install or Docker
Rust toolchain Latest stable curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \| sh
Xcode Latest (macOS) Required for Tauri client builds
Git Any recent version

Note: The Rust toolchain and Xcode are only required if you're working on the client (Tauri) app.

First-Time Setup

  1. Fork and clone the repository:
git clone https://github.com/<your-username>/FreezerTracker.git
cd FreezerTracker
  1. Install dependencies (from the repo root -- this installs all workspaces):
bun install
  1. Create the server environment file at apps/server/.env. Copy the template from the docs and set DATABASE_URL to point at your local PostgreSQL instance:
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/freezerman?schema=public"
  1. Start PostgreSQL (Docker is the easiest option):
docker compose up db -d

Or use a locally installed PostgreSQL 17 instance.

  1. Run database migrations (from apps/server):
bunx prisma migrate deploy
  1. Generate the Prisma client (from apps/server):
bunx prisma generate
  1. Start the server:
bun run dev:server
  1. Start the client (in a separate terminal):
bun run dev:client

Monorepo Workspace Commands

All commands are run from the repository root unless noted otherwise.

Command Description
bun run dev:server Start the server with --watch
bun run dev:client Start the Tauri desktop client in dev mode
bun run dev:client_ios Start the Tauri iOS client in dev mode
bun run check Run Biome check with auto-fix
bun run ci:check Run Biome in CI mode (no auto-fix, fails on errors)
bun run lint Lint only (no formatting)
bun run format Format only (no linting)

Pull Request Process

  1. Create a feature branch from main:
git checkout -b feat/my-feature main
  1. Make your changes -- keep commits focused and incremental.

  2. Ensure Biome passes:

bun run check
  1. Run tests (server):
bun run test

Run this from apps/server, or use the root workspace script if available.

  1. Commit with a clear message that describes what changed and why.

  2. Push and open a PR against main:

git push origin feat/my-feature
  1. Describe your changes in the PR description -- what problem does it solve, how to test it, and any trade-offs you made.

PRs are reviewed by maintainers from the Supporterino GitHub org. Please be patient and responsive to feedback.