Contributing to RapidForge
January 25, 2026 ยท View on GitHub
Thank you for your interest in contributing to RapidForge! We welcome contributions from the community and are grateful for your support.
Table of Contents
- Code of Conduct
- Getting Started
- Development Setup
- How to Contribute
- Pull Request Process
- Coding Standards
- Testing
- Documentation
Code of Conduct
This project adheres to a Code of Conduct that all contributors are expected to follow. Please read CODE_OF_CONDUCT.md before contributing.
Getting Started
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/rapidforge.git cd rapidforge - Add upstream remote:
git remote add upstream https://github.com/rapidforge-io/rapidforge.git
Development Setup
Prerequisites
- Go 1.21 or higher
- SQLite 3
- Node.js 18+ (for frontend development)
- Make (optional, for using Makefile commands)
Building from Source
# Build the main application
go build -o rapidforge
# Run the application
./rapidforge
Frontend Development
The project includes two frontend sub-projects:
Admin Interface (sitebuilder/):
cd sitebuilder
npm install
npm run dev # Development mode
npm run build # Production build
CodeMirror Editor (codemirroreditor/):
cd codemirroreditor
npm install
npm run dev
npm run build
Database Migrations
Migrations are located in database/migrations/. The application automatically runs pending migrations on startup.
To create a new migration:
# Create a new migration file in database/migrations/
# Format: YYYYMMDDHHMMSS_description.sql
How to Contribute
Reporting Bugs
- Use the GitHub issue tracker
- Check if the issue already exists
- Include detailed steps to reproduce
- Provide system information (OS, Go version, etc.)
- Include relevant logs or error messages
Suggesting Enhancements
- Open a GitHub issue with the "enhancement" label
- Clearly describe the feature and its use case
- Discuss the implementation approach
- Be open to feedback and alternative solutions
Working on Issues
- Comment on the issue you'd like to work on
- Wait for approval/assignment from maintainers
- Create a feature branch from
main - Make your changes
- Submit a pull request
Pull Request Process
-
Create a feature branch:
git checkout -b feature/your-feature-name -
Make your changes:
- Write clear, concise commit messages
- Follow the coding standards
- Add tests for new functionality
- Update documentation as needed
-
Keep your branch updated:
git fetch upstream git rebase upstream/main -
Run tests:
go test ./... -
Push to your fork:
git push origin feature/your-feature-name -
Open a Pull Request:
- Use a clear, descriptive title
- Reference related issues (e.g., "Fixes #123")
- Describe what changed and why
- Include screenshots for UI changes
- Ensure CI checks pass
-
Code Review:
- Address reviewer feedback
- Push additional commits as needed
- Maintainers will merge once approved
Coding Standards
Go Code
- Follow standard Go formatting (
go fmt) - Use
gofmtorgoimportsbefore committing - Follow Effective Go guidelines
- Write meaningful variable and function names
- Add comments for exported functions and complex logic
- Keep functions focused and concise
JavaScript/TypeScript
- Use ESLint configuration provided
- Follow React best practices for components
- Use TypeScript types where applicable
- Keep components small and reusable
General Guidelines
- Write self-documenting code
- Avoid premature optimization
- Handle errors appropriately
- Don't commit commented-out code
- Remove debug statements before committing
Testing
Running Tests
# Run all tests
go test ./...
# Run tests with coverage
go test -cover ./...
# Run specific package tests
go test ./runner
Writing Tests
- Write tests for new features
- Maintain or improve code coverage
- Use table-driven tests where appropriate
- Mock external dependencies
- Test edge cases and error conditions
End-to-End Tests
E2E tests are located in e2e/ using Playwright:
cd e2e
npm install
npm test
Documentation
Code Documentation
- Add godoc comments for exported functions, types, and packages
- Include usage examples in comments where helpful
- Update inline comments when changing logic
User Documentation
- Update README.md for user-facing changes
- Add examples to demonstrate new features
- Keep documentation in sync with code changes
API Documentation
- Document new endpoints and parameters
- Include request/response examples
- Note breaking changes prominently
Questions?
If you have questions about contributing, feel free to:
- Open a GitHub discussion
- Ask in an existing issue
- Reach out to the maintainers
Thank you for contributing to RapidForge! ๐