Welcome, Contributors!
Your interest in contributing to Open WebUI is greatly appreciated. This guide will help you understand the process and ensure your contributions enhance the project effectively.Code of Conduct
By participating in this project, you agree to uphold our Code of Conduct.Key Principles
- Zero Tolerance Policy: Unacceptable behavior results in immediate enforcement
- Respect & Professionalism: Treat all contributors with courtesy
- No Entitlement: Contributors volunteer their time freely
- Constructive Feedback: Focus on improvement, not criticism
- Report Violations: Contact hello@openwebui.com
Understanding Open WebUI vs Ollama
It’s crucial to distinguish between these projects:- Open WebUI: Web interface for chat interactions
- Ollama: Underlying LLM runtime technology
Before Contributing
Check Documentation
- Review official documentation
- Search existing issues
- Check discussions
- Join Discord community for questions
Scope of Support
We Support:- Open WebUI interface bugs and features
- Docker deployment issues specific to Open WebUI
- Integration with LLM providers
- Documentation improvements
- General Docker/Linux/networking tutorials
- Ollama core functionality
- Third-party reverse proxy configurations
- Basic programming language questions
Reporting Issues
Before Opening an Issue
- Search existing issues for duplicates
- Verify the issue in the latest version
- Gather all relevant information
Issue Requirements
Template Compliance: Failure to follow the issue template will result in your issue being closed without consideration. Required Information:- Open WebUI version
- Deployment method (Docker, pip, etc.)
- Operating system and version
- Steps to reproduce
- Expected vs actual behavior
- Relevant logs or error messages
- Screenshots (if UI-related)
Security Vulnerabilities
Do NOT report security vulnerabilities via Issues. Use GitHub Security Reporting instead.Contributing Code
Development Setup
- Fork the repository
- Clone your fork locally
- Set up the development environment (see Local Setup)
- Create a feature branch
Pull Request Process
1. Discuss First
Before writing code:- Open a discussion for new features
- Comment on existing issues you plan to work on
- Get feedback on your approach
2. Code Standards
Frontend (TypeScript/Svelte):- Follow existing code style
- Use TypeScript for type safety
- Keep components focused and reusable
- Run linter:
npm run lint - Format code:
npm run format
- Follow PEP 8 style guide
- Use type hints where applicable
- Write docstrings for functions/classes
- Run linter:
pylint backend/ - Format with Black:
black . --exclude ".venv/|/venv/"
3. Testing
- Add tests for new features
- Ensure existing tests pass
- Test frontend:
npm run test:frontend - Manual testing in development environment
4. Documentation
- Update relevant documentation
- Add JSDoc/docstrings to new code
- Update README if needed
- Submit documentation PRs to Docs Repository
5. Commit Messages
Write clear, descriptive commit messages:feat:- New featurefix:- Bug fixdocs:- Documentation changesrefactor:- Code refactoringtest:- Adding testschore:- Maintenance tasks
6. Pull Request Template
Complete the PR checklist:- I have read the Contributing Guidelines
- I have discussed my changes in an issue or discussion
- My code follows the project’s code style
- I have added tests that prove my fix/feature works
- I have updated the documentation accordingly
- All new and existing tests pass
- I have checked my code for security vulnerabilities
7. Timely Completion
Complete your PR in a reasonable timeframe. Open WebUI moves fast - PRs that stall for too long may be closed to keep the project moving forward. You can open as a Draft PR while still working on it.PR Review Process
- Maintainers review your PR
- Address feedback and requested changes
- Once approved, a maintainer will merge
- Your contribution is now part of Open WebUI!
Contributing Documentation
Documentation Repository
Submit documentation improvements to the Docs Repository.What We Need
- Setup and installation guides
- Troubleshooting documentation
- Feature tutorials
- API usage examples
- Architecture explanations
- Video tutorials and guides
Documentation Standards
- Write clearly and concisely
- Use proper formatting (Markdown/MDX)
- Include code examples where relevant
- Add screenshots for UI features
- Test all commands and code snippets
Translations and Internationalization
Help make Open WebUI available worldwide!Adding a New Language
- Navigate to
src/lib/i18n/locales - Create a directory with the ISO 639 language code (e.g.,
es-ESfor Spanish) - Copy files from
en-USdirectory - Translate the JSON values (preserve structure)
- Add the language to
src/lib/i18n/locales/languages.json
Translation Guidelines
- Submit translations in standalone PRs (not with features/fixes)
- Preserve JSON structure and keys
- Use native speakers when possible
- Consider cultural context
- Test translations in the UI
Community Involvement
Ways to Help
- Answer questions in Discord
- Help triage issues
- Review pull requests
- Share your Open WebUI setup and use cases
- Create tutorials and blog posts
- Spread the word about Open WebUI
Discord Community
Join our Discord server to:- Get help with development
- Discuss ideas and features
- Connect with other contributors
- Stay updated on project news
Best Practices
Keep PRs Focused
- One feature or fix per PR
- Don’t combine unrelated changes
- Keep changes minimal and targeted
Communication
- Be responsive to feedback
- Ask questions when unclear
- Update the issue/PR if your plans change
- Be patient - maintainers are volunteers
Quality Over Quantity
- Well-tested, documented code is better than rushed features
- Think about edge cases
- Consider backward compatibility
- Optimize for maintainability
Resources
Project Links
- Main Repository
- Documentation Repository
- Pipelines Repository
- Official Documentation
- Discord Community
Development Resources
External Documentation
License
By contributing to Open WebUI, you agree that your contributions will be licensed under the project’s license. See LICENSE for details.Thank You!
Your contributions, big or small, make a significant impact on Open WebUI. We’re excited to see what you bring to the project! Together, let’s create an even more powerful tool for the community. 🌟Questions?
Still have questions?- Join our Discord
- Start a Discussion
- Check the FAQ