(repost from the issue)
I think https://github.com/jupyterhub/binderhub/issues/555#issuecomment-390112357 remains the best compromise.
An alternative option is the idea of “binder boxes” or splitting the environment from the content. I did a bit of searching on the forum and Tip: embed custom github content in a Binder link with nbgitpuller was the best I could find. There are more threads to read though. For your use case you’d have several repos that define the environments (more than one but less than number of blog posts0 and then pull in the notebook that you want (per blog post) via nbgitpuller or the like.
I realise both are workarounds but I think they represent the best trade-off between maintenance complexity, usability and functionality.
Honourable mention of the Kaggle docker image which seems to have every single data science related library under the sun installed at the same time. A post bout using it as a binder box. So maybe getting all libraries for all posts installed at the same time is physically possible. Though every time I look at the Kaggle image I wonder how it is possible that it works.