Contribute Code

TransHarbor is open source (AGPL-3.0). We welcome contributions.

Tech Stack

Frontend: Flutter (iOS, Android, web)
Backend: PocketBase (Go + SQLite)

Development Approach

Test-driven vibe coding: Write code that works, write tests that prove it works, make sure the vibe is right. Not dogmatic TDD, not cowboy coding. Tests capture what should happen.

Process

1. Get set up

# Fork the repo
git clone your-fork
# Follow README for setup

2. Make changes

  • Pick an issue or fix a bug
  • Write your code
  • Write tests
  • Make sure it works

3. Squash your commits

git rebase -i HEAD~n
# Squash all commits into one
# Clear commit message
git push --force

One PR = one commit. Clean history matters.

4. Open PR

  • Clear title and description
  • Reference issues
  • We’ll review and merge

Commit Messages

Good: “Add user blocking to moderation tools”
Bad: “fix stuff”

What To Work On

  • Bug fixes
  • UI/UX improvements
  • Accessibility features
  • New features (discuss first in issues)
  • Documentation
  • Tests

Code Style

Follow existing style. We’re not strict, just consistent.

Flutter/Dart: Standard Dart conventions
PocketBase/Go: Standard Go conventions

Testing

Test what matters:

  • User-facing functionality
  • Critical moderation features
  • Data integrity
  • Security-sensitive code

Don’t test trivial stuff.

What We Provide

  • Recognition in CONTRIBUTORS file
  • Letters of recommendation for regular contributors
  • Real project experience

What we don’t provide: Pay (we’re volunteer-run)

Get Started

Repo: github.com/transharbor-org/transharbor
Issues: github.com/transharbor-org/transharbor/issues
Questions: support@transharbor.org


AGPL-3.0 licensed. Your code protects trans people worldwide.