I have a website that has over 600 articles. While investigating some huge usage spikes with a member of the Vercel team we noticed that articles were hitting the cache 8% of the time within 24 hours. Now originally I did have ppr enabled but I was informed that was causing the HUGE spike in fast origin transfer. I have since turned that off but that shouldn't be the reason why /[slug] routes aren't hitting the cache more than 15% of the time within 12 hours.

Now I do not have generateStaticParams() as doing that for all pages increases my build time from 2 minutes to over 8 minutes. Now I understand why because it has to fetch the data for everything page and render it. I also use react-tweet with redis to cache calls to X/Twitter which causes any page using that unable to be rendered statically.
What is the typical move here? Is it returning a generateStaticParams() with an empty array which will generate pages on-demand? Or is it just picking an arbitrary number of articles to render, say the last 50? What happens to the rest of the 550+ articles when they get visited if I go that route? Do they get generated on demand or are they all dynamic?
To give some more context, currently when running pnpm build for the site, this is the output for /[slug]
web:build: ├ ƒ /[slug] 4.83 kB 254 kBWhen I do generateStaticParams() for every single article I get
web:build: ├ ● /[slug] 4.83 kB 254 kBweb:build: ├ ├ /no-11-furman-rolls-past-no-12-elon-in-first-round-of-fcs-playoffs-31-6web:build: ├ ├ /multiple-factors-push-delaware-state-hawaii-out-of-linear-tv-limelightweb:build: ├ ├ /potato-bowl-bid-would-bring-nmsu-back-to-its-big-west-rootsweb:build: ├ └ [+602 more paths]What are the pros and cons to having things SSF vs dynamic? I use Sanity to power the site along with their SanityLive component to have live updates so I'm not sure if going SSG would impact that ability or not.


















