Thank you for your interest in contributing to Eleva! This document provides guidelines and instructions for contributing to the project.
By participating in this project, you agree to abide by our Code of Conduct. Please read it before contributing.
- Check if the bug has already been reported in the Issues section
- If not, create a new issue with a clear title and description
- Include steps to reproduce the bug
- Add any relevant screenshots or error messages
- Specify your environment (browser, OS, etc.)
- Check if the feature has already been suggested
- Create a new issue with a clear title and description
- Explain why this feature would be useful
- Provide any relevant examples or use cases
- Fork the repository
- Create a new branch for your changes
- Make your changes
- Write or update tests as needed
- Ensure all tests pass
- Update documentation if necessary
- Submit a pull request
-
Clone the repository:
git clone https://github.com/TarekRaafat/eleva.git cd eleva -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Run tests:
npm test
- Follow the existing code style
- Use meaningful variable and function names
- Write clear comments for complex logic
- Keep functions small and focused
- Write tests for new features
- Update documentation as needed
Follow the Conventional Commits specification:
feat:for new featuresfix:for bug fixesdocs:for documentation changesstyle:for formatting changesrefactor:for code refactoringtest:for adding or updating testschore:for maintenance tasks
Example:
feat: add support for custom middleware
- Write unit tests for new features
- Ensure all tests pass before submitting a PR
- Update tests when modifying existing features
- Aim for good test coverage
- Update README.md if needed
- Add JSDoc comments for new functions
- Update API documentation
- Include examples for new features
- All pull requests will be reviewed by maintainers
- Feedback will be provided if changes are needed
- Once approved, your PR will be merged
- Check the documentation
- Join our Discord community
- Open an issue for questions
Not a coder? You can still help Eleva thrive:
- Star the repo - It helps with visibility
- Spread the word - Tweet, blog, or tell a friend
- Sponsor the project - Financial support helps fund development
Eleva maintains machine-readable documentation for AI/LLM integration. When contributing, please keep these artifacts in sync:
| Change | Files to Update |
|---|---|
| New/changed public API | docs/llms.txt, docs/llms-full.txt, docs/agent-manifest.json |
| New Agent method/error | docs/agent-manifest.json, docs/plugins/agent/api.md |
| New plugin | docs/llms.txt (minimal), docs/llms-full.txt (full) |
| New example pattern | examples/ai/ (golden example), docs/llms-full.txt (recipe) |
Run bun run verify:ax before submitting PRs that touch AI-facing artifacts.
Examples in examples/ai/ are designed for AI codegen validation. Keep them:
- Minimal (fewest lines to demonstrate the pattern)
- Self-contained (no external dependencies beyond Eleva)
- Correct (they must work with
bun run serve)
By contributing to Eleva, you agree that your contributions will be licensed under the project's MIT License.