Considerations for Incremental Static Regeneration in Next.js
csrhymes.com
csrhymes.com
So looking back at my emails (this was in January) according to the Vercel build logs I could see on their page my actual build only took 11-13 minutes, but after that it wouldn't show any new logs for 16 minutes, at which point it would finally say "uploading build outputs", 5.5 minutes later it would say something about deploying and then I would hit the 45 minute timeout. So it was super frustrating because I could see my stuff building in an ok time, but it seemed like everything Vercel was doing was going slow or stalled and I had no control over what their system was doing and why it was going so slow. Support would give me no answers or even look at it.
Eventually I realized I could just change my static paths to not include any user content (which admittedly will hardly ever be checked again after creation), and I was able to build way faster and make it through the entire build and deploy in 10 minutes. Of course I'm only using <300 static pages now and those thousands of pages are the kind that once statically built, never need to be changed again, which was also a missing solution I fought with. Why am I rebuilding thousands of pages that don't need to be rebuilt every time I make a little tweak that doesn't affect them?
I haven't gone back since to try and figure it out again.
I’m assuming you’re using “catch all routes”? In which case, have you tried incremental static regeneration? As in, don’t actually generate the pages at build time, but only when they’re requested?
One difference with ISR is that it’s durable, where your cache is not. You can persist the statically built pages to disk, like S3, and be able to roll back to old versions.
You are correct that Vercel serves requests from the region closest to the visitor. Our servers automatically scale (serverless) so it doesn’t need to balance across regions. However, in an instance of downtime, Vercel would route traffic to the next nearest region.