We are grateful for your interest in contributing to the Flow project! Contributions are essential for the project's growth and success. This document outlines the guidelines for contributing to ensure a smooth and collaborative development process.
This project is a monorepo managed using Yarn workspaces. It contains the following packages:
flow/
├── apps/
│ ├── mobile/ # React Native
│ └── desktop/ # Electron (planning)
├── packages/
│ ├── shared/ # Shared
│ ├── database/ # Database (planning)
│ ├── hooks/ # Custom React Hooks
│ ├── player/ # Player
│ └── store/ # State
Ensure you have set up your Environment.
- Node.js (v18 or higher)
- Yarn Classic
- For iOS development: macOS and Xcode
- For Android development: Android Studio
-
Fork the Repository
Fork the
flowrepository. -
Clone Your Fork
git clone https://github.com/your-username/flow.git cd flow -
Install Dependencies
pnpm install
-
Install
# iOS pnpm mobile ios # Android pnpm mobile android
-
Start
pnpm dev
We follow the conventional commits specification for our commit messages:
fix: bug fixes, e.g. fix crash due to deprecated method.feat: new features, e.g. add new method to the module.refactor: code refactor, e.g. migrate from class components to hooks.docs: changes into documentation, e.g. add usage example for the module..test: adding or updating tests, e.g. add integration tests using detox.chore: tooling changes, e.g. change CI config.
Our pre-commit hooks verify that your commit message matches this format when committing.
We strictly adhere to code quality and coding standards to maintain a high-quality codebase.
We use ESLint to lint and format code. So ensure your VScode install the recommend extensions.
Working on your first pull request? You can learn how from this free series: How to Contribute to an Open Source Project on GitHub.
When you're sending a pull request:
- Prefer small pull requests focused on one change.
- Verify that linters and tests are passing.
- Review the documentation to make sure it looks good.
- Follow the pull request template when opening a pull request.
- For pull requests that change the API or implementation, discuss with maintainers first by opening an issue.