The model-driven approach to software development is to first create a clear, formal model of the application’s structure and behavior, and then build a generator that automatically implements that abstract model into concrete software. With this approach, developers reduce boilerplate, improve consistency across extensions, and minimize human error. It also makes maintenance easier, because changes in the model can be deployed automatically, while changes in the generator can reuse the same model. I will show you my (free) Extension Generator as an example to create Joomla extensions. We will also have a look at the possibilities of this approach for Joomla core development on a next level.