Thank you for your interest in contributing to the Open Source Kigali Website 🎉
We're excited to have you here. This guide will help you go from setup to a successfully merged pull request.
- Code of Conduct
- What We Need Help With
- Before You Start
- Setting Up Locally
- Branch Structure
- Making a Contribution
- Pull Request Checklist
- Commit Message Format
- Code Style Guidelines
- Project Structure
- Where to Get Help
By contributing to this project, you agree to follow our Code of Conduct.
Please read it here:
We expect all contributors to be respectful, collaborative, and inclusive.
All work is tracked using GitHub Issues.
| Label | Meaning |
|---|---|
good first issue |
Beginner-friendly tasks |
help wanted |
Needs community support |
bug |
Something is broken |
enhancement |
Feature improvements |
documentation |
Docs or README updates |
design |
UI/UX improvements |
Start here → https://github.com/Open-Source-Kigali/osk-frontend/issues
Before writing any code:
- Check if an issue already exists.
- If it exists, comment on it to let others know you are working on it.
- If no issue exists, create one first before starting work.
- Keep each pull request focused on one issue only.
This makes reviews faster and easier.
# 1. Fork the repository, then clone your fork
git clone https://github.com/YOUR_USERNAME/osk-frontend.git
cd osk-frontend
# 2. Install dependencies
npm install
# 3. Create environment variables
cp .env.example .env
# 4. Start development server
npm run devThe app runs at:
http://localhost:5173
We use two main branches:
| Branch | Purpose |
|---|---|
main |
Production — what is live on the website |
development |
Staging — where all PRs are merged first |
Always branch off development — never off main.
# Switch to development first
git checkout development
git pull origin development
# Then create your branch
git checkout -b fix/your-change-nameYour pull request should always target the development branch.
# 1. Switch to development and pull latest changes
git checkout development
git pull origin development
# 2. Create a new branch from development
git checkout -b feat/add-new-feature
git checkout -b fix/navbar-bug
git checkout -b docs/update-readme
# 3. Make your changes
# 4. Run checks before committing
npm run lint
npm run typecheck
npm run build
# 5. Commit your changes
git add .
git commit -m "feat: add new feature description"
# 6. Push your branch
git push origin feat/add-new-feature
# 7. Open a Pull Request on GitHub targeting the development branchBefore submitting your PR:
- Code passes
npm run lint - Code passes
npm run typecheck - Project builds successfully with
npm run build - Changes are tested locally in the browser
- No
console.logstatements left in the code - No hardcoded data in components — use
src/constants/ - Types are defined in
src/types/ - PR targets the
developmentbranch notmain - PR is linked to an issue
- PR description clearly explains what changed and why
We use Conventional Commits:
type: short description
feat: add partner logo upload to form
fix: navbar does not turn white on scroll
docs: update installation instructions
style: fix spacing on projects page
refactor: move events data to constants
chore: update dependencies
feat→ new featurefix→ bug fixdocs→ documentation changesstyle→ formatting with no logic changerefactor→ code restructuringchore→ maintenance taskstest→ testing changes
- Use TypeScript only —
.tsand.tsxfiles - Avoid
anytypes - Keep reusable data in
src/constants/ - Keep interfaces and types in
src/types/ - Prefer Tailwind CSS over inline styles
- Only use inline
style={{}}for dynamic values like hex colors - One main component per file
- Do not add new npm packages without opening an issue and getting approval first
src/
├── assets/ # Images and static files
├── components/ # Reusable UI components
├── constants/ # All static data (events, projects, partners...)
├── hooks/ # Custom React hooks
├── lib/ # Utility functions and API helpers
├── pages/ # One file per route
├── types/ # TypeScript interfaces and types
└── App.tsx # Router configurationIf you are stuck:
- GitHub Issues — for bugs and feature discussions
- WhatsApp Community — for questions and code help → Join here
- Email — opensourcekigali@gmail.com
- Discord - Open Source Kigali
We aim to review all pull requests within 48 hours on weekdays.
Every contribution matters — whether it is code, design, documentation, or feedback.
Welcome to Open Source Kigali 🚀 Together, we build in public and grow together.