See also https://digitale-sammlungen.de, 1.2 million works from the Bavarian collections.
Unfortunately not Public Domain :-/
We worked on high quality scans, processing Terabytes of raw image material using Akka (this was around 2012 I think) and also created pipelines for performance OCR at scale on these scans. Doing this on Fraktur and medieval minuscule scripts was tricky and we didn't get really good results during my time there.
It was first created using Adobe Flash and then later ported to JS with WebGL/Three.js. God, this looks silly in retrospect.