Thank you for your interest in contributing to Eureka Flow! This document provides guidelines and information for contributors.
- Node.js 18+
- Yarn (package manager)
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/eureka-flow.git cd eureka-flow - Install dependencies:
yarn install
- Start the development server:
yarn web:start
Use descriptive branch names with prefixes:
feature/- New features (e.g.,feature/add-node-grouping)fix/- Bug fixes (e.g.,fix/connection-rendering)docs/- Documentation updates (e.g.,docs/api-reference)refactor/- Code refactoring (e.g.,refactor/canvas-store)
Follow Conventional Commits:
type(scope): description
[optional body]
Types:
feat- New featurefix- Bug fixdocs- Documentationstyle- Code style (formatting, etc.)refactor- Code refactoringtest- Adding testschore- Maintenance tasks
Examples:
feat(canvas): add node grouping functionality
fix(socket): resolve reconnection issues
docs(readme): update installation instructions
- Run
yarn lintbefore committing - Run
yarn prettierto format code - Follow existing patterns in the codebase
- Use TypeScript strict mode
- Prefer named exports over default exports
- Run
yarn web:testto execute tests - Add tests for new features
- Ensure existing tests pass
-
Create a new branch from
develop:git checkout develop git pull origin develop git checkout -b feature/your-feature
-
Make your changes and commit them
-
Push to your fork:
git push origin feature/your-feature
-
Open a Pull Request against the
developbranch -
Fill out the PR template completely
-
Wait for review and address any feedback
- Keep PRs focused and reasonably sized
- Include screenshots for UI changes
- Link related issues
- Ensure CI checks pass
eureka-flow/
├── apps/
│ └── web/ # React web application
├── libs/
│ ├── flows/ # Flow editor logic, API, hooks, stores
│ ├── socket/ # WebSocket layer
│ ├── web-core/ # HTTP client, auth
│ ├── ui-kit/ # UI components (shadcn/ui)
│ ├── shared/ # Common components
│ └── theme/ # Theme provider
└── ...
Please be respectful and inclusive in all interactions. We expect all contributors to:
- Use welcoming and inclusive language
- Be respectful of differing viewpoints
- Accept constructive criticism gracefully
- Focus on what is best for the community
- Open a Discussion for questions
- Check existing Issues for known problems
Thank you for contributing!