Git Branch Workflow & Core Website Fixes | Humanitarians AI
Rushali explains how she isolated three unrelated website bugs into separate git branches, verified each with simple local checks, and left a clean trail for the next developer.
Rushali, a Humanitarians AI fellow working on the organization's website, walks through how she handled three unrelated bugs in one week without letting the fixes blur into each other. The video is less about the bugs themselves and more about the discipline of keeping each fix isolated, verifiable, and easy to hand off.
One branch per bug, not one branch for the week
Instead of batching every fix into a single branch, Rushali started from main, pulled the latest code, and created a separate branch for each issue: broken routes, footer inconsistencies, and the donate page. The reasoning is practical rather than stylistic. A branch that answers one question clearly can be reviewed by someone else without them having to guess which changes belong together. When several fixes move in parallel, mixing them into one branch turns a five-minute review into a puzzle.
Before treating any branch as ready, she ran three quick local checks: git status to confirm only the expected files were touched, git diff --stat to see the size of the change at a glance, and git log --oneline to confirm the branch still told one clean story. None of these are sophisticated tools, but running them consistently is what catches an accidental extra file or a commit that drifted off-topic before it reaches review.
Fixing the 404 on /80-days-to-stay
One of the three bugs was a broken route around the /80-days-to-stay page. The URL naming had become inconsistent across the site, so Rushali picked /80-days-to-stay as the canonical path, added a redirect from the older /80-days variant, and aligned the navigation so old links still land in the right place instead of breaking. The fix touches three specific files: the canonical page lives in app/80-days-to-stay/page.tsx, the redirect is defined in next.config.mjs, and the footer navigation link was updated in footer.tsx. Framing it this way, as a small route-system cleanup across the files that control routing and navigation, makes the fix easier for the next developer to find and confirm.
Refactoring the donate page instead of deleting a card
The donate page needed the GoFundMe option removed from view, but rather than deleting that card outright, Rushali refactored the section into an array of donation options. Each option can now be enabled or disabled from one place, and the array is filtered and rendered consistently rather than hand-edited in the markup. That structure means adding or retiring a donation option in the future is a one-line change instead of a rewrite. She also fixed a related styling bug where donate button text disappeared in dark mode.
Cleaning up the footer
The footer got two changes. First, the branding was simplified to match the header more closely, removing extra theme-based logo logic that had accumulated over time. Second, links to features that were not ready yet, including notes, newsletter, and a few unfinished project pages, were hidden rather than left live and confusing to visitors. The goal in both cases was a footer that only exposes what actually works.
Verifying before calling it done
Rushali's closing point is about handoff quality, not code cleverness. After each isolated fix, she checked that /80-days-to-stay redirects correctly, that the donate page shows only active options and reads clearly in dark mode, and that the footer exposes only finished links. That verification step is what turns a code change into something a teammate can trust without re-testing it themselves.
Key takeaways
- Isolate unrelated bugs into separate branches so each one can be reviewed and explained on its own.
- Use
git status,git diff --stat, andgit log --onelineas quick sanity checks before calling a branch ready. - Prefer refactoring a section into a filterable array over hard-deleting a UI element you might need again.
- Document exactly which files a fix touches (page, config, component) so the next developer can find it fast.
- Verify each fix's actual behavior after merging, not just that the code compiles.
Who this is for
This video is for Humanitarians AI fellows and volunteer developers who are picking up website tasks and want a concrete, repeatable git workflow for keeping unrelated fixes separate and reviewable.
Chapters
- 0:00Isolated branching workflow: One branch per bug
- 0:18Local Git sanity checks: git status, diffstat, and log
- 0:32Fixing 404 routes & establishing /80-days-to-stay redirects
- 0:50Refactoring the Donate Page (array logic & dark mode button fixes)
- 1:10Cleaning footer branding & hiding unfinished links (newsletter, notes, boil)
- 1:30Verification habits for high-quality developer handoffs
Full transcript(auto-generated, with timestamps)
Isolated branching workflow: One branch per bug
[0:00]Hi, I am Rashali and the video is about how I organized website fixes across branches and resolved core issues in the humanitarians AI site. This update is meant to help the next developer understand the work quickly and safely. This week I worked on multiple independent website issues, including
Local Git sanity checks: git status, diffstat, and log
[0:19]Broken routes, footer inconsistencies, and the donate page. Instead of mixing everything into one branch, I kept the work separated so each fix stayed easier to test, explain, and hand off. This
Fixing 404 routes & establishing /80-days-to-stay redirects
[0:32]First video focuses on that workflow and the most visible site changes. My local workflow was simple and repeatable. I started from main, pulled the latest code, created one branch for one issue, and committed only that fix. The point was not just cleaner get history. It was
Refactoring the Donate Page (array logic & dark mode button fixes)
[0:50]Making sure each branch answered one question clearly so another developer could review it without guessing what belonged together. I also used a few quick sanity checks before treating a branch as ready. Git status told me whether I had only the files I expected. Git diff stat showed the size of the change and git log one line confirmed
Cleaning footer branding & hiding unfinished links (newsletter, notes, boil)
[1:10]The branch still told one clean story. Those small checks save time when several fixes are moving in parallel. One fix was a 404 problem around 80 days to stay. The route naming had become inconsistent. So I kept slash 80 days to stay as the canonical page. Added a redirect from /80 days and aligned
Verification habits for high-quality developer handoffs
[1:31]Navigation so the older path still lands in the right place instead of breaking the user flow. The useful part for a future developer is knowing where that fix lived. The canonical page is an app/80day tostay/page.tsx. The redirect is in nextconfig.mjs and the footer navigation was updated in footer.tsx. So this was not one random change. It was a small route system cleanup across the files that control routing and navigation. Another fix was on the donate page. I needed to remove the GoFundMe option from the visible page, but instead of hard deleting a card, I refactored the section into a donation options array. That way, future additions can be made in one place, filtered by enabled state, and rendered consistently. I also fixed the button styles so the text stays visible in dark mode. I also cleaned up the footer in two ways. First, I simplified the footer branding so it matched the header
More closely and removed extra theme-based logo logic. Second, I hid links that were not ready yet, including notes, newsletter, and unfinished project links like boil, Wilks, and Zebonastic. That keeps the footer more honest and less confusing for users. If another developer takes over this work, the most important habit is to verify the behavior after each isolated fix. Check that /80 days redirects correctly. Check that the donate page shows only active options and still reads clearly in dark mode. Check that the footer exposes only ready links. That kind of validation is what turns a code change into a reliable handoff. Your turn. Pick one of these fixes, trace the branch idea behind it, inspect the changed files, and verify the final behavior locally. In the next update, I will cover the reusable component work and the merge strategy used before pushing changes forward. Follow humanitarians AI for more project progress videos and research explainers.
More from AI+1
2:45Diagnose Before You Design: Website Restructure Week 1 Audit by Muskan Agrawal
2:15Understanding HAI Website Codebase & Website Repo Structure
3:29Suno AI Tutorial Part 3: Audio Referencing, Extending & Pro Exports
3:30Automating the YouTube Review Pipeline | Vikhyat
3:57Suno AI Tutorial Part 1: Make Your First Song (No Music Background)
1:31