These OTS static site generators are fine for small sites, but at the scale of our clients who have more than 30k posts and counting, none of these would be able to handle it. When I say handle it, I also am referring the time taken to generate 30,000 posts in the shortest possible time. In a custom solution, you're able to optimize this heavily. I brought it down to 30 minutes from 1.5 hours for 30k posts.
Why not simply add a caching layer infront of a Wordpress instance? For starters, this is a media company, so they would like to have instantly updated posts on certain parts of their site. For that, you need to disable caching. Which means tens of thousands of requests are hitting your instance every minute. So, that means you need a high performance server + SQL instance (Expensive). It worked out to $3000USD per month just for servers alone.
The static site generator use just $100/month instance, for comparison. Of course, there is also the development cost for the client for this solution, but I can comfortably share that their ROI would be less than a year if you factor just server costs alone.
There are many other bonuses with a custom static solution - Your whole theme can be broken down into an MVC paradigm which makes future integrations super clean and easy. Codebase maintainability also has improved drastically - partly because of the language itself (Elixir) and partly because of the MVC architecture.
How are their posts instantly updated using a static site generator? Don’t get me wrong, I was sold on in static site generators years ago. But not understanding this argument.
I was using another static site generator (Hexo), but at some point I wanted to change some things and add some custom html to my posts. Since the documentation was ... well ... minimalistic on some aspects, I also spent some time looking at the source code. But at that point I was really wondering what benefit I still had from using that generator.
In the end, all a static site generator does is collecting some markdown or RST files, converting them to html and putting that into a template html file. And generating some lists (index page, RSS, ...) and some metadata for SEO. So it took me a single Saturday to make a working static site generator and now I can do anything I want without looking up documentation or source code, since it's my own dumpster fire :-)
There’s an outstanding and fairly flexible static site generator for rst files in Python that’s been around for quite a long time, called Sphinx. It’s basically a docs generator but I’ve used it as a generic static site generator.