Over the past 3 years this framework had many fans and have past several iterations and evolutions.
Yet as core developers joined and left the basics of the frameowrk did not change – Mongo, Express, Angular-1.x and Node.
As the tech world wizzed on this made mean somewhat old, not interesting and not even our choice for a new projects.
The main reason I think that the old version of mean (and mean.js and even meteor) can not be a serious framework for a startup that needs scale is because all these frameworks are essentially vertical monlithes.
This initially was the whole idea – a full stack framework that would provide a simple, one stop shop to provide all of your js goodness in one place. This made mean a great place to practice and learn about node, express and mongo and dive in to the world of angular but as people started to dive deeper they wanted choice.
A choice to use different dbs, node frameworks and frontend frameworks.
This was complex because everything was tightly coupled in to our meanio npm package.
As we experienced with more and more technology the new architecture started to emerge where there where 3 major parts involved.
- Angular – We did not update mean since angular-1.6 and obviously to be a rellevent platform we needed to upgrade – currently the platform is based on angular 4.
- GraphQL – We found the graphQL frees us to pick, choose and utilize different microservices and thus different db’s, application frameworks or even runtimes (time to learn GO 🙂 ).
We created a project called innograph that will become a graphQL schema library helping reuse schemas and derived standardized web components.
- Bit – All of these layers of abstractions, schemas, components and microservices create tons of additional complexity – thats why we ditched the meanio (kernel) and have chose bit to manage the components and their dependencies.
I hope I can dive in to each of these technologies in depth soon.
So currently the master branch provides all of the above while the old mean can be found in the 1.x branch.
what you can expect from the new mean is…
- It’s much less evolved then it used to be
- It’s not production ready yet
- It utilized several untested (yet promising) ideas
- It’s totally undocumented currently
I’m essentially stepping a few steps back to have you join me and rebuild this community and this framework.
Feel free to join me in the meaningful journey!