A step-by-step guide to making your first pull request. Time estimate: 30-45 minutes (including setup).
In the wrong doc?
- Never coded before → GET_STARTED.md (uses AI tools, plain language, ~30 min)
- Just want the shortest path to a merged PR → CONTRIBUTING.md § Your first PR in 5 minutes (~5 min)
- Want the full contribution policy → CONTRIBUTING.md
Continue below if you want a guided first-PR walkthrough with each step explained.
Prerequisites: Complete the Development Guide setup first and verify the Onboarding Checklist passes.
Browse open issues and pick one tagged good first issue:
If you're contributing during a busy event such as Sports Hack, choose an issue you can realistically finish in one sitting.
Use this sizing guide:
- XS: 15-45 minutes. Typos, copy edits, tiny documentation fixes, labels.
- S: 45-120 minutes. Small UI polish, focused accessibility fixes, one-file tests, small bug fixes.
- M: Half day. Multi-file bug fixes or moderate feature work.
- L: Multi-day work. Larger refactors or feature work that usually needs follow-up review.
For hackathon-style contribution events, prefer XS or S issues so you can finish, verify, and open a PR in under two hours.
Why this matters: for contribution-driven events, completed PRs help demonstrate interest, follow-through, and readiness to participate. More meaningful contributions can improve your chances of being selected, but selection still depends on maintainer review and event capacity.
Useful links:
Comment on the issue to let others know you're working on it:
"I'll work on this."
If an issue is already claimed, pick another one or ask in Discord for suggestions.
Before you start coding, check:
- whether someone is already assigned
- whether a recent comment suggests active work is already in progress
- whether the scope matches the time you actually have available
Make sure your fork's develop branch is up to date, then create a feature branch:
# If you haven't added upstream yet:
git remote add upstream https://github.com/rogerSuperBuilderAlpha/cursor-boston.git
# Update and branch
git checkout develop
git pull upstream develop
git checkout -b docs/fix-typo-in-readme # use type/short-descriptionBranch naming convention: type/short-description
feature/add-votingfor featuresfix/auth-redirectfor bug fixesdocs/update-api-referencefor documentation
For a first PR, keep it small. Good examples:
- Fix a typo in documentation
- Add a missing
alttext to an image - Improve an error message
- Add a test for an untested function
Before committing, make sure everything passes:
npm run lint # ESLint — must have zero warnings
npm run type-check # TypeScript — must compile cleanly
npm test # Jest — all tests must passAll commits require a Developer Certificate of Origin sign-off. Use the -s flag:
git add .
git commit -s -m "docs(readme): fix typo in quick start section"The -s flag adds a Signed-off-by: Your Name <your@email.com> line to the commit, certifying you have the right to submit the code under the project's license.
Commit message format (enforced by commitlint):
type(scope): short description
| Type | When to Use |
|---|---|
feat |
New feature |
fix |
Bug fix |
docs |
Documentation only |
style |
Formatting, whitespace (no logic change) |
refactor |
Code restructuring (no behavior change) |
test |
Adding or updating tests |
chore |
Tooling, dependencies, config |
Before you push or open the PR, rebase your branch onto the latest develop so the diff stays clean and review only includes your work:
git fetch upstream
git checkout docs/fix-typo-in-readme
git rebase upstream/developIf you already opened the PR and develop moved, rebase again and push the updated branch to the same PR.
git push origin docs/fix-typo-in-readmeThen on GitHub:
- You'll see a banner: "Compare & pull request" — click it
- Base branch: Change to
develop(notmain) - Fill out the PR template:
- Describe what you changed and why
- Reference the issue:
Closes #123 - Check the testing boxes
- Submit the PR
- CI runs automatically — lint, type-check, tests, security scan, build
- A maintainer reviews — typically within 1 week
- You may get feedback — requested changes are normal and expected. Push additional commits to the same branch
- Merge! — Once approved, a maintainer merges your PR into
develop
| Mistake | Fix |
|---|---|
Forgot -s on commit |
git commit --amend -s to add sign-off to the last commit |
PR targets main instead of develop |
Edit the PR on GitHub and change the base branch to develop |
| PR includes unrelated commits from an outdated branch | git fetch upstream && git checkout your-branch && git rebase upstream/develop, then push the rebased branch |
| Pre-commit hook rejects commit | Run npm run lint and npm run type-check to see errors, fix them, and try again |
| Commit message rejected by commitlint | Use the format type(scope): description — see the types table above |
Merge conflicts with develop |
git checkout develop && git pull upstream develop && git checkout your-branch && git rebase develop |
- Discord: discord.gg/Wsncg8YYqc — ask in the #development channel
- GitHub Issues: Comment on the issue you're working on
- Email: hello@cursorboston.com
Welcome to Cursor Boston! We're glad you're here.