neo.mjs nominated for “The most exciting Use of Technology”

Tobias Uhlig
ITNEXT
Published in
5 min readMay 24, 2021

--

Inside the JavaScript Open Source awards program 2021.

“This is your last chance. After this, there is no turning back. You take the blue pill — the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill — you stay in Wonderland and I show you how deep the rabbit-hole goes.” Morpheus (The Matrix)

Content

  1. About the OS Awards program
  2. What is neo.mjs?
  3. What is the neo.mjs business model?
  4. What are the biggest challenges?
  5. Final thoughts

1. About the OS Awards program

The Javascript Open Source awards program highlights the most impactful Open Source projects of the recent year.

This year’s winners will be announced between June 9–11 at the JS Nation conference, which is the biggest Javascript conference in the cloud with more than 25k developers attending.

The awards program is divided into 5 categories with a total of 23 nominees.

I am honored that neo.mjs got selected into “The Most Exciting Use of Technology” category together with 4 other candidates. It is extremely rare that German projects are highlighted on an international level.

You can find the nominees page here:

Please take a dive into the other projects as well!

Professional OS projects deserve a lot more attention and valuation.

2. What is neo.mjs?

neo.mjs is an MIT licensed JavaScript frontend framework, centered around an application worker being the main actor.

Two different setups are available.

Single Page Applications (SPAs)

Multi Window Applications (MWAs)

Project Information:

  1. The development mode can run as is, directly directly inside your browser, while using the latest ECMAScript features as soon as they are available inside all major browsers. Not needing any builds or transpilations can save a lot of time during the development process and leads to a perfect debugging experience.
  2. Modularity: Clean and consistent architecture based on JS modules.
  3. Scalability: You can lazy load JS & CSS as needed. Inside the production environment, cross app split chunks, as well as delta CSS updates, are available, even across different browser windows.
  4. Extensibility: More than 200 classes available to use as-is or extend. ES classes have been enhanced with a custom config system
  5. A command line interface (CLI) is in place. You can create a new app shell using npx neo-app .
  6. The framework core is exposed ( core.Base ). Not everything needs to extend Component.
  7. Easy state management, even across different browser windows
  8. Re-using JS instances as much as possible
  9. A powerful JSON based virtual dom engine running inside its own worker.
  10. Performance: JS engine tests show up to 33,000 delta updates per second. The real limits are still unknown.

You can find the repository here:

3. What is the neo.mjs business model?

Keeping the entire code base open source (free to use), including all examples & demo apps, is a main goal of the project.

neo.mjs is using a business as a service (BaaS) model to help clients in need. This is kind of an insurance policy to ensure that client projects run as smooth as possible.

  1. Providing trainings to get development up to speed and familiar with the best practises.
  2. Support: clients can get help in case they encounter framework based bugs or increase the priority of feature request → have an influence on the road map.
  3. Professional services: clients can get help for their app development process. Clients can also get in touch in case they want to get a PoC app developed, to figure out how big the benefits can be for their use case.

It is my goal to create jobs.

4. What are the biggest challenges?

From a technical perspective the project is doing great and getting better every day.

Building a community from scratch is definitely challenging.

The project is in need of more contributors. In case you are interested, joining the neo.mjs Slack Channel is very much appreciated. Kind of obvious that I will recommend the best and most active contributors for client projects as well as potential future jobs within the neo team.

Right now I haven’t figured out how to monetize neo.mjs and this is a problem in the short run. It prevents me from putting in as much time as I would love to do.

My next step is wrapping up the “micro frontends” topic and then writing more beginner friendly articles. Topics like

  1. “How to create your own components?”
  2. “How to create apps using component trees and architecture patterns like MVVM?”

5. Final thoughts

As mentioned at the start of the article, I am very happy and honored about the project nomination. Hopefully it will have a positive effect on getting the industry more involved.

I would love to add even more value on top of neo.mjs. The project is very disruptive and maybe too far ahead of its time, but the performance of the demo apps speak for themselves.

How the project continues relies on your support!

Mini Roadmap:

  1. Adding more enterprise grade components (buffered grid including editors, finishing the calendar, sliders, color picker,…).
  2. Adding more examples for the mobile scope as well as new components.
  3. Charts worker: web workers can not access the DOM, but they can access Canvas nodes. We can leverage this to create a worker for images, charts or map manipulations.
  4. neo.mjs middleware: keeping UI and middleware data stores in sync, using socket connections. Workers are available in node as well, so we can e.g. optionally use the vdom engine in node for server side rendering.

A big thank you to the community for making this happen!

Best regards from Munich,
Tobias

--

--