After this lesson, you will be able to: Take an existing project and set up a professional GitHub repository with branch protection, full CI, auto-deploy to Vercel, and contributor docs.
This is the passion project for the Git and GitHub Pro sub-track per Curriculum-Upgrade.md. Pick a project you already own (or one from another LastWrite subtrack) and upgrade its GitHub setup to professional bar.
Anyone can push code to GitHub. The candidate who can configure a repo so it enforces good practices automatically stands out instantly. After this project, you'll have a public repo URL on your resume that proves you operate at the level of a working engineer, not just a tutorial-follower.
Don't start a new one. The work is the polish, not new features.
Pick a project you already have on GitHub (the rn-passion-project / aa-cf-passion-project / ai-passion-project all qualify)
If you don't have one, fork a small public project (anything you actively use)
Create a checklist of the gaps: missing CI? no PR template? no branch protection? no auto-deploy?
Estimate 2-4 hours total; this is configuration, not feature work
Apply everything from se-git-04.
Enable branch protection on main: require PR + 1 approval + status checks + linear history
Add .github/CODEOWNERS (it can just be yourself for a solo project; the structure shows you know it)
Add .github/PULL_REQUEST_TEMPLATE.md (from se-fund-05)
Add .github/ISSUE_TEMPLATE/bug_report.md and feature_request.md
Add a CONTRIBUTING.md explaining how to set up the project locally + how to submit a PR
Add a CODE_OF_CONDUCT.md (Contributor Covenant template is fine)
Add a LICENSE file (MIT is the safe default for personal projects)
Apply se-git-05.
Create .github/workflows/ci.yml with lint, type check, and test jobs
Enable caching (cache: npm or pnpm) to keep CI fast
Add matrix builds across Node 18/20/22 if your project supports them
Make the required status check the merged-ci check; you can require it on the protected branch from Settings > Branches
Verify by opening a PR with an intentional lint error; confirm CI fails and the merge button is disabled
Apply the deploy YAML from se-git-05.
Connect the GitHub repo to a Vercel project (vercel.com > Add new > Project)
Vercel auto-deploys preview URLs for every PR
Verify the preview URL appears as a GitHub status check on a sample PR
For backend / non-Next.js projects, write a .github/workflows/deploy.yml that triggers on push to main
Document the production URL in the README
Hiring managers read READMEs in 30 seconds; optimize for that.
Top of file: project name + one-sentence description + a screenshot or gif
Badges row: CI status, deploy status, license
'Try it' section: link to the live URL + one-line install instructions
'Why' section: one paragraph on the problem the project solves
'Architecture' section: a short diagram or bullet list of the stack
'Local development' section: clone, install, run, test
'Contributing' section: link to CONTRIBUTING.md
'License' section: link to LICENSE
If the README is more than two screens long, split into multiple .md files (ARCHITECTURE.md, etc.)
Skipping the README. The most-visited file in any repo; hiring managers read it first. Configuring CI but never running it against a real PR. Untested CI is decorative. Leaving stale `WIP` or `TODO` labels in the project board. Recruiters notice. Choosing fancy badges over a clean README. One row of green badges is fine; ten is clutter. Skipping the LICENSE file. Without one, your code is technically all-rights-reserved and nobody can legally use it.
Sign in and purchase access to unlock this lesson.