Nice article!
It's worth mentioning that if you scroll for long enough time, socket.assigns.blogs would grow - possibly a lot. Unless you don't plan on live updating them, you can use temporary assigns. LiveView docs have the whole section about it.