Thank you for your interest in contributing to flat-mate. This document explains how to get started.
# Clone the repository
git clone https://github.com/hyperpolymath/flat-mate.git
cd flat-mate
# Install web/mobile dependencies
npm install
# Configure the API
cp .env.example .env
source .env
# Start verisimdb (in another terminal)
cd /var$REPOS_DIR/verisimdb
cargo run -p verisim-api
# Start the API
deno run --watch=apps/api --allow-net --allow-env apps/api/main.ts
# Start web client
npm run dev:webflat-mate/ ├── apps/ │ ├── api/ # Deno API server (profiles, listings, swipes, matches) │ │ └── src/ # Config, verisimdb client, repository layer │ ├── web/ # React + Vite web client │ │ └── src/ # Components, API wrapper, styles │ └── mobile/ # Expo React Native mobile client │ └── src/ # Mobile API wrapper ├── packages/ │ └── shared/ # Domain models, validation, scoring, encoding │ └── src/ # constants, domain, encoding, index ├── docs/ # Architecture documentation ├── .machine_readable/ # SCM state files (STATE.scm, META.scm, ECOSYSTEM.scm) ├── .well-known/ # Protocol files (security.txt, humans.txt, ai.txt) ├── .github/ # GitHub config (CODEOWNERS) ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md # This file ├── LICENSE # MPL-2.0 ├── README.md ├── SECURITY.md └── TOPOLOGY.md # Architecture map and completion dashboard
Before reporting: 1. Search existing issues 2. Check if it’s already
fixed in main
When reporting:
Use the bug report template and include:
-
Clear, descriptive title
-
Environment details (OS, Deno version, Node version)
-
Steps to reproduce
-
Expected vs actual behaviour
-
Logs, screenshots, or minimal reproduction
Before suggesting: 1. Search existing issues and discussions 2. Consider which app layer the feature belongs to (API, web, mobile, shared)
When suggesting:
-
Problem statement (what pain point does this solve?)
-
Proposed solution
-
Alternatives considered
Look for issues labelled:
-
good first issue– Simple tasks -
help wanted– Community help needed -
documentation– Docs improvements
docs/short-description # Documentation test/what-added # Test additions feat/short-description # New features fix/issue-number-description # Bug fixes refactor/what-changed # Code improvements security/what-fixed # Security fixes
We follow Conventional Commits:
<type>(<scope>): <description> [optional body] [optional footer]
Types: feat, fix, docs, style, refactor, test,
chore, security
Scopes: api, web, mobile, shared, infra
By contributing, you agree that your contributions will be licensed under the MPL-2.0.