Skip to main content

Developer Workflow Guide

This guide covers common development workflows and best practices for working on the FindU platform.

Daily Development Flow

1

Start your day

2

Create a feature branch

3

Make your changes

  • Write code
  • Add tests
  • Update documentation
4

Test locally

5

Open a PR

Branch Strategy

Overview

FindU uses a three-tier branch strategy:

Branch Protection Rules

Main Branch (Production)

  • Protection Level: Maximum
  • Requirements:
    • PR from dev branch only
    • All CI/CD checks must pass
    • No direct commits allowed
    • Admin override only in emergencies
  • Auto-deployment: Merges trigger production deploy

Dev Branch (Development)

  • Protection Level: Moderate
  • Requirements:
    • PR from feature branches
    • CI checks must pass
    • No approval required (trust-based)
    • Direct commits allowed for hotfixes
  • Auto-deployment: Merges trigger dev environment deploy

Feature Branches

  • Protection Level: None
  • Guidelines:
    • Always create from dev
    • Use descriptive names
    • Delete after merge
    • Keep focused on single feature/fix

Working with Supabase

Creating Migrations

When you need to modify the database, you have two options:
  1. Write Migration:
    • Open Supabase dashboard
    • Go to SQL Editor
    • Write and test your SQL changes
    • Save the SQL to a file in your repo
  2. Version Control:
  3. Apply Migration:
    • For immediate changes: Run in SQL Editor
    • For review: Include in PR
    • Team lead will apply during deployment
Always test migrations in development first! Production migrations can’t be easily rolled back.

Development vs Production Data

Since we use production Supabase directly, follow these guidelines:
  1. Test Accounts: Always use emails containing ‘test’
  2. Data Isolation: Create test data that’s clearly marked
  3. Read-Only First: Use SELECT before UPDATE/INSERT
  4. Clean Up: Remove test data after development

Working with the Web App

Local Development

Adding New Features

Working with AI Development Tools

Claude Code (MCP)

Claude Code provides direct Supabase integration:

Using MCP Effectively

Git Workflow

Branch Naming

Follow these conventions:
  • feature/description - New features
  • fix/description - Bug fixes
  • chore/description - Maintenance tasks
  • docs/description - Documentation only

Commit Messages

Write clear, descriptive commits:

PR Guidelines

Deployment Process

Development Deployment

Production Deployment

Service URLs

Development Environment:
  • Web App: findu-web-dev.up.railway.app
  • ML API: findu-matching-dev.up.railway.app
Production Environment:
  • Web App: findu-web-production.up.railway.app
  • ML API: findu-matching-production.up.railway.app
  • iOS App: App Store

Common Tasks

Adding Environment Variables

Debugging Issues

Check:
  • PR is from a branch in the same repo
  • Supabase Branching 2.0 is enabled
  • No migration conflicts

Best Practices

Code Quality

  1. Follow existing patterns - Check nearby code
  2. Write tests - Especially for critical paths
  3. Handle errors gracefully - Users should never see crashes
  4. Optimize for performance - Profile before optimizing

Security

  1. Never commit secrets - Use environment variables
  2. Validate all inputs - Both client and server side
  3. Use RLS policies - Supabase row-level security
  4. Regular dependency updates - Keep packages current

Team Collaboration

  1. Communicate in PRs - Document your thinking
  2. Review thoughtfully - Test locally when needed
  3. Ask questions - No question is too simple
  4. Share knowledge - Update docs as you learn

Useful Resources

Supabase Docs

Database, auth, and storage reference

React Docs

React patterns and best practices

Tailwind CSS

Utility-first CSS framework

FindU Slack

Internal team communication

Questions? Need help? Don’t hesitate to ask in #dev-help on Slack!