How We Hired a React Guy Who Couldn't Debug Gatsby
So our CTO goes "Gatsby is perfect, it's just React with GraphQL!" Hires this React dev for $95k who spent 6 months telling us to "add more RAM" every time builds hit Node.js memory limits. Turns out knowing React and knowing how to unfuck gatsby-node.js when it's choking on 10,000+ pages are completely different skills.
This dude's solution to everything was restart the server. Builds taking an hour? Restart Docker. GraphQL queries timing out? Restart the build. Memory heap exceeded? Restart everything and pray. Windows path length errors? "Works fine on my Mac." Content team screaming because they can't publish breaking news? "Have you tried turning it off and on again?"
Dude spent 6 months suggesting we "just add more RAM" to our $4,000 MacBook Pros when the real problem was Gatsby trying to load 50GB of images into memory during builds. Even bought a 64GB desktop thinking it would help - Gatsby still crashed, just took longer.
Try running Gatsby development on Windows and you'll want to quit programming. WSL2 makes it slightly less awful but Windows developers were basically fucked. Our MacBooks from 2019 couldn't handle the memory usage - 16GB wasn't enough once you hit 5,000+ pages. M1 Macs couldn't even run half the Gatsby plugins we needed.
We burned through 3 different "senior React developers" before admitting that Gatsby requires a very specific type of masochist - someone who understands React, GraphQL, Node.js build processes, AND doesn't mind spending 40% of their time googling "gatsby sharp pipeline error win32" at 2am.
Interviewed 12 people after that. 11 ran when we mentioned Gatsby. The one who stayed lasted 3 weeks before updating his resume on Stack Overflow Jobs. Turns out "senior React dev who enjoys debugging non-deterministic build failures" isn't a real job category.
What we learned the hard way: When someone says "just React," run. It's never just React.
Testing Everything Else After Gatsby Hell
After the Gatsby nightmare, we spent 6 months testing frameworks. Not just picking the first alternative - actually building the same content site in Next.js, Nuxt 3, SvelteKit, and Remix to see what actually worked with our team.
SvelteKit was the biggest surprise. Builds were crazy fast - 5-8 minutes vs Gatsby's 45+ minute nightmares. Vite hot reload felt like magic after Gatsby's "maybe it'll work" approach. The bundle sizes were tiny, load times were insane, and everything just... worked. Problem? Try hiring Svelte developers who can actually ship production code. We interviewed 8 people, found 1 who'd touched Svelte, and he wanted senior React money for junior Svelte experience.
Nuxt 3 felt like Vue's answer to Next.js but better in some ways. Auto-imports meant less boilerplate, server API routes were cleaner than Next.js API routes, and the build process was more predictable. Issue? Our team knows React, not Vue. Training 6 developers on Vue syntax and ecosystem would've taken months we didn't have.
Remix was interesting in a "this might be the future" way. The nested routing approach made sense, server-first philosophy avoided hydration issues, and error boundaries actually contained problems instead of crashing the entire app. But our frontend team barely understood client-side React - asking them to think about server-side rendering, streaming, and progressive enhancement was like asking them to perform brain surgery.
Next.js won because it was boring. Switched to Next.js and suddenly we could hire normal React devs again. Not because Next.js is easier - it's because when shit breaks you get actual error messages. Like, with line numbers and stack traces. Revolutionary concept after 18 months of "Check your GraphQL queries" error messages that told you nothing.
Yeah, we're locked into Vercel now and the bills hit different. Still dealing with hydration errors but at least they happen predictably - client-side state doesn't match server render, fix the thing, move on with life. Not "delete everything and rebuild for 45 minutes hoping it works this time."
Edge functions are weird as hell and occasionally our API responses come back empty when deployed to fra1 but work fine from iad1. No idea why - Vercel's status page never shows issues but geographic routing is clearly fucked sometimes. Serverless cold starts still make our first-load times inconsistent but whatever - better than no deploys at all.
Vercel's pricing calculator is basically gambling. We budgeted like 400 bucks a month, hit over a grand last month because apparently our images triggered some CDN bandwidth spike. Don't ask me why - their analytics dashboard graphs make no fucking sense.
But our content team stopped wanting to murder us. New developers can actually contribute without spending 3 weeks learning Gatsby's plugin ecosystem bullshit. We spent more on Vercel bills in 6 months than the Gatsby guy's entire salary, but saved 20+ hours per week not debugging random build failures.
The Day Gatsby Broke Our Entire Workflow
Nobody tells you that Gatsby doesn't just slow down with more developers - it completely obliterates your workflow.
6 developers working fine, then suddenly builds jump from 12 minutes to 45 minutes overnight. Why? Someone added 500 blog posts to the CMS while we were sleeping. No warning, no gradual slowdown, just BAM - your deployment pipeline is fucked.
Tried everything: restart Docker, restart build server, restart our sanity. Checked if it was a plugin issue, a memory issue, a network issue. Spent 3 days profiling builds with Gatsby's debug tools (which are useless) before we realized it was just volume. More content = exponentially longer builds. Mathematical inevitability disguised as a sudden crisis.
Every push meant the entire team stopped working for 45 minutes. Couldn't test locally because 10k+ pages needed 8GB RAM minimum and our 2019 MacBooks started thermal throttling after 20 minutes. Fans spinning like jet engines, CPU at 95°C, battery draining in 2 hours.
Tried running Docker with 12GB allocated - thermal throttled even harder. Tried running on our beefier desktop machines - npm install kept failing with EPERM: operation not permitted
errors that made no sense. Works on Sarah's machine, fails on mine with identical node versions. Still don't know why.
Gatsby Cloud looked like salvation until we got hit with a $2,400/month bill. For what? Incremental builds that randomly decided to rebuild everything from scratch anyway.
What We Should Have Built Instead
Just use Next.js - Same React components, 12-minute builds instead of 45. Yeah you're locked into Vercel but at least the content team can publish without praying to the build gods first.
Normal React SPA hitting an API - 90% of what we built didn't need static generation. Could've made a regular React app that fetches from our headless CMS API. Would've been done in half the time, with zero build step bullshit.
Literally anything else - WordPress, Ghost, hell even a static HTML site updated with rsync would've been less painful. At least when WordPress breaks, only the broken thing breaks.
Should've read Gatsby's own docs about performance issues and build optimization before committing to this nightmare. Pro tip: when the official docs have 47 different sections about fixing build performance, maybe the tool is the problem.