Skip to content

Contributing

Commit Conventions

We follow Conventional Commits:

<type>(<scope>): <description>

[optional body]

Types

Type Usage
feat New feature
fix Bug fix
refactor Code change without bug fix or feature
docs Documentation only
style Formatting, linting (no logic change)
chore Build, CI, dependencies
test Adding/updating tests

Scopes

Scope Area
mobile Flutter app
admin Admin web app
seller Seller web app
api Backend API routes
db Database schema
docs Documentation site

Examples

feat(mobile): add order cancellation flow
fix(admin): correct commission calculation on reports
docs(supabase): add RLS policy documentation

Coding Standards

Flutter

  • Use Riverpod for state management
  • Use freezed for immutable models
  • Use json_serializable for JSON parsing
  • Follow flutter_lints package conventions
  • Widgets go in lib/presentation/widgets/
  • Screens go in lib/presentation/screens/
  • Providers go in lib/providers/
  • Models go in lib/models/
  • Services go in lib/services/

React (Web)

  • Use Next.js App Router (app/ directory)
  • Use Redux Toolkit for global state
  • Use Chakra UI for components
  • API routes in app/api/
  • Components in components/
  • Redux slices in lib/redux/
  • Services in lib/services/

Pull Request Process

  1. Branch from main using feat/, fix/, etc. prefixes
  2. Keep PRs focused — one feature/fix per PR
  3. Write a clear description linking to any issues
  4. Ensure linting passes
  5. Request review from a maintainer
  6. Squash-merge when approved