Thank you for your interest in contributing to MorphBox! We're excited to have you join our community of developers exploring AI-assisted development.
- Code of Conduct
- Getting Started
- Development Setup
- How to Contribute
- Development Workflow
- Code Standards
- Testing
- Documentation
- Submitting Changes
- Community
We are committed to providing a welcoming and inclusive environment for all contributors. By participating in this project, you agree to:
- Be respectful and considerate in all interactions
- Welcome newcomers and help them get started
- Focus on constructive criticism and collaborative problem-solving
- Respect differing viewpoints and experiences
- Accept responsibility and apologize when mistakes are made
Unacceptable behavior includes harassment, discriminatory language, personal attacks, and any conduct that creates an unsafe environment.
- Docker Desktop or Docker Engine (20.10+)
- Node.js (18.0.0+)
- Git
- Claude Code (recommended for all code modifications)
New to open source? We love helping first-time contributors! Look for issues labeled:
good first issue- Simple fixes to get you startedhelp wanted- Areas where we need community helpdocumentation- Help improve our docs
-
Fork and Clone
# Fork the repository on GitHub, then: git clone https://github.com/YOUR_USERNAME/morphbox.git cd morphbox
-
Install Dependencies
cd web npm install -
Set Up Development Environment
# Copy example environment file cp .env.example .env.local # Add your Anthropic API key (if available) # ANTHROPIC_API_KEY=your-key-here
-
Run Development Server
npm run dev # Access at http://localhost:8008 -
Run Type Checking
npm run check
Before creating a bug report:
- Check existing issues to avoid duplicates
- Verify you're using the latest version
- Collect relevant information (error messages, logs, system info)
When reporting:
- Use a clear, descriptive title
- Describe expected vs actual behavior
- Provide steps to reproduce
- Include relevant code snippets or screenshots
- Specify your environment (OS, Docker version, Node version)
We welcome feature suggestions! Please:
- Check if it's already suggested in issues or discussions
- Explain the problem your feature solves
- Describe your proposed solution
- Consider alternative approaches
- Include mockups or examples if applicable
Documentation contributions are highly valued! You can:
- Fix typos and clarify confusing sections
- Add examples and tutorials
- Translate documentation
- Improve code comments
- Update outdated information
Use descriptive branch names:
feat/add-new-panel- New featuresfix/terminal-resize-bug- Bug fixesdocs/improve-setup-guide- Documentationrefactor/cleanup-websocket- Code refactoringtest/add-queue-tests- Test additions
We follow Conventional Commits:
<type>(<scope>): <subject>
<body>
<footer>
Types:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code formatting (no logic changes)refactor:Code restructuringtest:Test additions or fixeschore:Maintenance tasksperf:Performance improvements
Examples:
feat(queue): add priority levels to prompt queue
fix(terminal): resolve resize event handler memory leak
docs(api): update WebSocket connection examples- Use TypeScript for all new code when possible
- Follow existing code patterns in the file/module
- Use meaningful variable and function names
- Keep functions focused and small
- Add JSDoc comments for public APIs
- Follow Svelte best practices and conventions
- Keep components focused on a single responsibility
- Use TypeScript for props and events
- Leverage Svelte stores for state management
- Ensure accessibility (ARIA attributes, keyboard navigation)
- Use CSS custom properties for theming
- Follow mobile-first responsive design
- Maintain consistent spacing and sizing
- Ensure dark mode compatibility
While we don't enforce strict formatting rules, please:
- Use consistent indentation (tabs in this project)
- Keep line length reasonable (~100 chars)
- Remove trailing whitespace
- End files with a newline
# Run all tests
npm test
# Run specific test file
npm test -- path/to/test
# Run in watch mode
npm test -- --watch- Write tests for new features and bug fixes
- Follow existing test patterns
- Use descriptive test names
- Test edge cases and error conditions
- Mock external dependencies appropriately
- Add JSDoc comments for public functions/classes
- Include parameter types and return values
- Provide usage examples for complex APIs
- Document any non-obvious behavior
- Keep README.md focused on quick start and overview
- Add detailed guides in
/docsdirectory - Include code examples and screenshots
- Update documentation when changing features
-
Before Starting
- Discuss major changes in an issue first
- Ensure no one else is working on the same issue
-
Create Your PR
- Fork the repository
- Create a feature branch from
main - Make your changes using Claude Code
- Commit with clear, conventional messages
- Push to your fork
-
PR Title and Description
- Use a clear, descriptive title
- Reference related issues (#123)
- Describe what changed and why
- Include screenshots for UI changes
- List any breaking changes
-
PR Checklist
- Code follows project conventions
- Tests pass locally
- Documentation updated if needed
- No sensitive data (API keys, passwords)
- Tested in Docker environment
- Considered backward compatibility
-
Review Process
- Maintainers will review within 3-5 days
- Address feedback constructively
- Make requested changes in new commits
- Re-request review when ready
After approval:
- Maintainer merges your PR
- Your contribution appears in the changelog
- You're credited as a contributor
- Changes deploy in the next release
- GitHub Discussions: Ask questions and share ideas
- Issues: Report bugs and request features
- Discord: Join the Claude Developers Discord for real-time chat
We value all contributions! Contributors are:
- Listed in our contributor graph
- Mentioned in release notes
- Part of shaping MorphBox's future
Project maintainers:
- Review PRs promptly and constructively
- Provide clear contribution guidelines
- Foster an inclusive community
- Make final decisions on project direction
- Handle security issues responsibly
DO NOT create public issues for security vulnerabilities.
Instead:
- Email security concerns to the maintainers
- Include detailed description and reproduction steps
- Allow time for patch before public disclosure
When contributing:
- Never commit API keys or secrets
- Validate and sanitize user inputs
- Follow principle of least privilege
- Consider Docker container isolation
- Review dependencies for vulnerabilities
By contributing, you agree that your contributions will be licensed under the same license as the project (Apache-2.0).
Still have questions? Feel free to:
- Open a discussion
- Ask in an issue
- Reach out on Discord
Thank you for contributing to MorphBox! Your efforts help make AI-assisted development accessible to everyone. 🚀