Welcome Contributors
Contributions are always welcome, no matter how large or small. Before contributing, please read the code of conduct.LiveCodes is a community-driven project. We appreciate all contributions, from bug reports to major features.
General Recommendations
1. Discuss first
1. Discuss first
Always discuss your suggested contribution in an issue, so that we agree on the concept and implementation before the actual work.
2. Provide detailed descriptions
2. Provide detailed descriptions
Leave a detailed description in the Pull Request explaining:
- What problem you’re solving
- How your solution works
- Any breaking changes or considerations
3. Include screenshots
3. Include screenshots
Screenshots are preferable for visual changes. Before and after comparisons are especially helpful.
4. Communicate
4. Communicate
Always communicate. Whether it is in the issue or the pull request, keeping the lines of communication helps everyone around you.
5. Ask questions
5. Ask questions
If you have any questions, let’s discuss.
Getting Started
Prerequisites
- Node.js: Install the latest LTS version
- Git: For version control
- Code editor: VS Code recommended
Development Setup
Export i18n texts
Start development server
Available Scripts
Pull Request Guidelines
Before Submitting
Create a branch
Fork the repo and create your branch from Name your branch descriptively:
develop:adds-new-thingfixes-mobile-bugupdates-docs
Commit Messages
This project uses Conventional Commits to automatically generate the changelog. Format:feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
PR Requirements
Work in Progress
GitHub supports draft pull requests. Use them if your PR is not ready for review:- Open as draft PR
- Mark as “Ready for review” when complete
Working on Issues
Claiming Issues
To claim an issue, comment.take on the issue. This assigns it to you and prevents duplicate work.
Good First Issues
New to the project? Check these labels:- docs: Documentation improvements
- bug: Bug fixes
- good first issue: Beginner-friendly tasks
Questions Welcome
All questions are welcomed in GitHub Discussions.Specific Contribution Topics
Adding Languages
Guide for adding new language support
Release Process
How releases are managed
Internationalization
Contributing translations
Documentation
Improving documentation
Code Style
TypeScript
- Use TypeScript for all new code
- Provide proper type definitions
- Avoid
anytype when possible
Formatting
- Code is auto-formatted with Prettier
- Run
npm run testto check formatting
Best Practices
- Write clean, readable code
- Add comments for complex logic
- Follow existing code patterns
- Keep functions small and focused
Development Workflow
Local Development
Testing
Unit Tests:- Start dev server:
npm run start - Test in browser at http://127.0.0.1:8080
- Test different languages and features
- Check browser console for errors
Funding
LiveCodes is part of GitHub Sponsors. If you would like to support the project financially, please see the sponsor page for details.Financial contributions help sustain the project and fund development.
Recognition
Contributors are recognized in:- Release notes
- Changelog credits section
- Project README
License
By contributing to the LiveCodes project, you agree that your contributions will be licensed under its MIT license.Community
GitHub Discussions
Ask questions and discuss ideas
Issues
Report bugs and request features
Pull Requests
Submit contributions
Code of Conduct
Community guidelines
Thank you for contributing to LiveCodes! Your contributions help make this project better for everyone.