The boring day that matters most
Day 3 was the day we stopped and asked: "If we're going to ship 10+ products, can we please not redesign the nav bar from scratch every time?"
The answer was a unified design system and a deploy pipeline that actually works.
What we shipped
First Party Labs website redesign. The site you're reading this on got a complete overhaul. New layout, founder bios, project pages with roadmaps and status badges. We wanted it to feel like a research lab, not a startup landing page. Clean, informational, no "Book a Demo" buttons.
Groupthink website redesign. groupthink.com got the same treatment. Consistent typography (Work Sans), consistent color palette, consistent component patterns. If you visit both sites, they feel like siblings, not strangers.
GitHappy deployed. GitHappy is our GitHub analytics tool — commit patterns, PR velocity, contributor graphs. It went from "running on Jonathan's laptop" to "deployed on Vercel with a real domain" today. The deploy pipeline is Vercel + GitHub Actions, and it took us about 90 minutes to set up from scratch.
Unified design system. We extracted common patterns into a shared system: typography scale, color tokens, spacing units, component patterns (pills, cards, status badges). It's not a component library yet — just documented conventions and shared CSS. But it means our 10th product will look like it belongs with the first one.
What went wrong
The design system work took twice as long as planned because we kept finding inconsistencies. One site used #282828 for body text, another used #333, another used #2d2d2d. Three different grays that look identical on most monitors but aren't. We picked #282828 and did a find-and-replace across every repo.
Vercel build caching bit us. GitHappy's first deploy succeeded, but subsequent deploys served stale assets for about 45 minutes. We added cache-busting query params to CSS and JS includes. Inelegant but effective.
We also discovered that two of our repos had conflicting .node-version files — one wanted Node 18, the other Node 20. This caused a fun 30-minute debugging session where builds worked locally but failed in CI.
By the numbers
- 184 commits across 10 repositories
- 2 website redesigns (firstpartyhq.com, groupthink.com)
- 1 product deployed (GitHappy)
- 1 design system documented
- 3 shades of gray unified into 1
- 45 minutes of stale cache served (0 users affected, thankfully)
What it means
This is the kind of day that doesn't feel exciting but makes everything after it faster. Every future product starts with a working design system, a proven deploy pipeline, and consistent patterns. The compound interest of infrastructure work.