First of all, thank you for your interest in contributing to MicroForge 🎉
Open-source survives because people like you show up and help. This guide is here to make that process as smooth as possible, even if this is your first-ever contribution.
Please read this document before starting. It explains:
- How to set up the project locally
- How to pick an issue and create a branch
- How to test your changes
- How to open a Pull Request (PR)
MicroForge is an enterprise-grade, cloud-native microservices platform that demonstrates:
- Polyglot microservices (Go, Java, Python, Node.js, React)
- Docker-based local development
- Kubernetes-native production deployment
- DevOps best practices and observability patterns
If you want to learn real-world microservices + DevOps, this project is a great place to contribute.
📖 Main documentation:
👉 https://github.com/Manoj-14/MicroForge
Anyone.
- First-time open-source contributors ✅
- Students learning Docker, Kubernetes, or backend/frontend development ✅
- Experienced developers looking to improve documentation, tooling, or services ✅
If something is confusing, that itself is a valid thing to fix.
Before you begin, make sure you have the following installed:
- Git
https://git-scm.com/downloads - Docker & Docker Compose
https://docs.docker.com/get-docker/
You do not need to know every language used in this repo. Many contributions are docs, config, or small fixes.
Click the Fork button on GitHub: 👉 https://github.com/Manoj-14/MicroForge
This creates your own copy of the repository.
git clone https://github.com/<your-username>/MicroForge.git
cd MicroForge/srcThis runs all services together.
docker-compose up -d⏳ The first run may take a few minutes.
Once done, open:
Frontend: http://localhost:3000
If the page loads, your setup works 🎉
Look at open issues: 👉 https://github.com/Manoj-14/MicroForge/issues
Labels to look for:
good first issue
documentation
help wanted👉 Before starting work, comment on the issue and ask to be assigned.
Never work directly on main branch.
All pull requests should target the stage branch.
Always create a new branch. Never work directly on main.
Branch Naming Convention
feature/<short-description>
fix/<short-description>
docs/<short-description>
Example
git checkout -b docs/add-contributing-guide- Keep changes focused and small
- Follow existing folder structure
For documentation:
- Use clear language
- Assume the reader is a beginner
For code:
- Avoid unrelated refactors
- Add comments where helpful
Before opening a PR:
- Ensure Docker services start without errors
- For documentation-only changes:
- Ensure Markdown renders correctly on GitHub
For code changes:
- Service should build/run locally
- No breaking changes to other services
Write clear, meaningful commit messages.
Good examples
- docs: add contributing guidelines
- fix: correct port mismatch in docker-compose
- feat: add health endpoint to metadata service
- Push your branch:
git push origin <branch-name>- Open a PR against the main branch:
👉 https://github.com/Manoj-14/MicroForge/pullsFill out the PR template carefully. Refer the PR_TEMPLATE.md
- Clear description of what and why
- Related issue linked (which can be linked using "#" followed by the issue number)
- No unnecessary changes
- Beginner-friendly documentation where applicable
- Please be respectful and constructive.
- This project follows standard open-source collaboration etiquette.
- If unsure, default to kindness.
If you’re stuck:
- Comment on the issue you’re working on
- Ask questions in the PR by tagging the authors or maintainers using "@"
- Explain what you tried
- Create an issue if the problem persists to reach out to the community for help
Thank you for contributing to MicroForge 🚀 We appreciate your time and effort!