About

Why?

It is a common mistake to think that there is a single MVC design and that it is just about separation of concerns (data storage, user interface, business logic). Application designs also include tradeoffs between resources consumption, maintainability, testing, debugging etc.

Also, is not well known that the pattern is used differently in different scenarios. A server application and a client application might be using an MVC pattern, but it won't work exactly in the same way. Context makes a difference in how the pattern is applied.

What for?

Understanding the reasons behind design choices of the past will enable you to make better decisions for new design challenges.

Knowing that different technologies use different versions of MVC will help you to avoid confusion when learning to use new tools.

Who?

Built by @givanse with the help and guidance of @paul_hammant.

I had a need to better understand MVC, I did some research and wrote an article about it: MVC past, present and future. That led to a bunch of emails between me and P. Hammant. I received more ideas to go beyond the original article and also some neat sources of information. Now, it is all here.

Also, you can read Paul's description of MVC in: MVC: misunderstood for 37 years . It goes into more detail about the technical aspects.

How?

A static Vite app draws the tree with SVG. Path and grid math live in app/lib/svg-layout (no Ember). Encyclopedia copy is still the Handlebars partials under app/templates; the shell ports {{link-to-blank}} to ordinary links.

Pull requests are welcome. These are the files where you would add or edit content:

Hosted at Github.