Welcome Contributors!
Flow Browser is an open-source project, and we welcome contributions from the community. Whether you’re fixing bugs, adding features, or improving documentation, your help is appreciated!Getting Started
Set Up Development Environment
Follow the development setup guide to install prerequisites and dependencies:
Development Workflow
Making Changes
Write Code
Make your changes following the project’s coding standards:
- Use TypeScript for type safety
- Follow existing code patterns
- Keep functions small and focused
- Add comments for complex logic
Test Your Changes
Manually test your changes:
Flow Browser doesn’t have automated tests. Thoroughly test your changes manually.
Code Quality Standards
TypeScript
TypeScript
- Enable strict type checking
- Avoid
anytypes - Use proper interfaces and types
- Export types for reusability
React Components
React Components
- Use functional components with hooks
- Keep components small and focused
- Extract reusable logic into custom hooks
- Use proper prop types
Animations
Animations
Styling
Styling
- Use TailwindCSS utility classes
- Follow existing styling patterns
- Use CSS variables for theming
- Keep styles consistent across components
Commit Guidelines
Commit Message Format
Use clear, descriptive commit messages:feat:- New featurefix:- Bug fixdocs:- Documentation changesrefactor:- Code refactoringstyle:- Formatting, missing semicolons, etc.perf:- Performance improvementstest:- Adding or updating testschore:- Maintenance tasks
Submitting Changes
Create Pull Request
- Go to your fork on GitHub
- Click “Pull Request”
- Select your branch
- Fill out the PR template with:
- Description of changes
- Related issues (if any)
- Screenshots (for UI changes)
- Testing performed
Pull Request Checklist
Before Submitting
Before Submitting
- Code follows project style guidelines
-
bun lintpasses without errors -
bun typecheckpasses without errors -
bun formathas been run - Changes have been manually tested
- No console errors or warnings
- Commit messages are clear and descriptive
For UI Changes
For UI Changes
- Tested on multiple screen sizes
- Dark/light mode both work
- Animations are smooth
- Accessibility considered
- Screenshots included in PR
For Features
For Features
- Feature is complete and functional
- Edge cases handled
- Error states handled gracefully
- User feedback provided (toasts, etc.)
- Documentation updated if needed
Reporting Issues
Bug Reports
When reporting bugs, include:- Description: What happened vs. what should happen
- Steps to reproduce: Detailed steps to recreate the bug
- Environment: OS, Flow Browser version, Electron version
- Screenshots: If applicable
- Console logs: Any error messages
Feature Requests
Submit feature requests at: flowbrowser.userjot.com Include:- Description: What feature you want
- Use case: Why it’s needed
- Examples: How it might work
Communication
GitHub Issues
For bug reports and feature discussions
Pull Requests
For code contributions and reviews
User Feedback
Documentation
This documentation site
Project-Specific Notes
Castlabs Electron Fork
Flow Browser uses a Castlabs fork of Electron for Widevine DRM support. This is normal and intentional.
package.json:
Database Changes
When modifying the SQLite schema:- Update Drizzle ORM schema files
- Generate migrations:
bun run drizzle-kit generate - Test migrations with existing data
- Document breaking changes
Extension API Changes
When modifying extension support:- Test with popular Chrome extensions
- Ensure backward compatibility
- Document API changes
Code of Conduct
Be respectful, inclusive, and professional:- Welcome newcomers
- Provide constructive feedback
- Focus on the code, not the person
- Respect different perspectives
- Help others learn and grow
License
Flow Browser is licensed under the GNU General Public License v3.0 (GPL-3.0). All contributions are subject to this license.Recognition
Contributors are recognized in:- GitHub contributors page
- Release notes (for significant contributions)
- CONTRIBUTORS.md file (if exists)
Need Help?
If you’re stuck or have questions:- Check the documentation
- Search existing GitHub issues
- Ask in a new GitHub issue
- Review the architecture guide
Next Steps
Development Setup
Set up your development environment
Architecture
Understand the codebase structure
Building
Learn how to build the application
GitHub Repository
Visit the Flow Browser repository