Skip to main content

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

Always discuss your suggested contribution in an issue, so that we agree on the concept and implementation before the actual work.
Leave a detailed description in the Pull Request explaining:
  • What problem you’re solving
  • How your solution works
  • Any breaking changes or considerations
Screenshots are preferable for visual changes. Before and after comparisons are especially helpful.
Always communicate. Whether it is in the issue or the pull request, keeping the lines of communication helps everyone around you.
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

1

Fork and clone

Fork the repository and clone it locally:
git clone https://github.com/<your-name>/livecodes
cd livecodes
2

Install dependencies

npm install
3

Export i18n texts

Export all source texts for internationalization:
npm run i18n-export
See i18n documentation for more details.
4

Build the project

npm run build
5

Start development server

npm run start
This starts the app and watches for changes at http://127.0.0.1:8080

Available Scripts

# Start dev server with hot reload
npm run start

# Build production version
npm run build

# Serve built app
npm run serve

Pull Request Guidelines

We actively welcome your pull requests, however linking your work to an existing issue is preferred.

Before Submitting

1

Create a branch

Fork the repo and create your branch from develop:
git checkout -b adds-new-feature develop
Name your branch descriptively:
  • adds-new-thing
  • fixes-mobile-bug
  • updates-docs
2

Write tests

If you’ve added code that should be tested, add tests.
3

Update documentation

If you’ve changed APIs, update the documentation.
4

Visual changes

If you make visual changes, screenshots are required.
5

Run tests

Ensure the test suite passes:
npm run test
6

Address lint warnings

Make sure you address any lint warnings.

Commit Messages

This project uses Conventional Commits to automatically generate the changelog. Format:
type(scope): description

[optional body]

[optional footer]
Examples:
feat(editor): add vim mode support

fix(compiler): resolve TypeScript import issues

docs(api): update SDK configuration examples

chore: update dependencies
Types:
  • feat: New feature
  • fix: Bug fix
  • docs: Documentation changes
  • style: Code style changes (formatting, etc.)
  • refactor: Code refactoring
  • test: Adding or updating tests
  • chore: Maintenance tasks

PR Requirements

Work in Progress

GitHub supports draft pull requests. Use them if your PR is not ready for review:
  1. Open as draft PR
  2. 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.
Issues not assigned are assumed open. Please assign yourself before beginning work.

Good First Issues

New to the project? Check these labels:

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 any type when possible

Formatting

  • Code is auto-formatted with Prettier
  • Run npm run test to 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

1

Make changes

Edit code in your editor with hot reload enabled.
2

Test changes

Test your changes thoroughly in the browser.
3

Run tests

npm run test
4

Commit changes

git add .
git commit -m "feat(scope): description"
5

Push and create PR

git push origin your-branch-name
Then create a PR on GitHub.

Testing

Unit Tests:
npm run test
E2E Tests:
npm run e2e
Manual Testing:
  1. Start dev server: npm run start
  2. Test in browser at http://127.0.0.1:8080
  3. Test different languages and features
  4. 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
Significant contributions are highlighted in release announcements.

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.