I have been thinking of something similar for the last few weeks: most apps are 80% the same components (as you were saying "auth, routing, data model CRUD, ACL"), but these get re-written or at least re-engineered again and again.. wouldn't it be cool to define your apps' main components as a sort of DSL and then generate a starting poitn?
And here you are. This is so interesting.
Would love to have a short chat about this in the near future, if you have time!