npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

neo.mjs

v6.15.11

Published

The webworkers driven UI framework

Downloads

1,941

Readme

Welcome to neo.mjs!

neo.mjs enables you to create scalable & high performant Apps using more than just one CPU core. No need to take care of a workers setup, and the cross channel communication on your own.

Version 4 release announcement

Content

  1. Slack Channel for questions & feedback
  2. Scalable frontend architectures
  3. Multi Window COVID19 IN NUMBERS Demo App
  4. COVID19 IN NUMBERS Demo App
  5. What if ... (Short overview of the concept & design goals)
  6. Want to learn more?
  7. Online Examples
  8. Online Docs
  9. Command-Line Interface
  10. Ready to get started?
  11. Story & Vision
  12. neo.mjs is in need of more contributors!
  13. neo.mjs is in need of more sponsors!

Most frontends today still look like this. Everything happens inside the main thread (browser window), leading to a poor rendering performance. The business logic happens inside main as well, which can slow down DOM updates and animations. The worst case would be a complete UI freeze.

To solve this performance problem, it is not enough to just move expensive tasks into a worker. Instead, an application worker needs to be the main actor. neo.mjs offers two different setups which follow the exact same API. You can switch between dedicated and shared workers at any point.

The dedicated workers setup uses 3-6 threads (CPUs). Most parts of the frameworks as well as your apps and components live within the app worker. Main threads are as small and idle as possible (42KB) plus optional main thread addons.

In case you want to e.g. create a web based IDE or a multi window banking / trading app, the shared worker setup using 5+ threads (CPUs) is the perfect solution.

All main threads share the same data, resulting in less API calls. You can move entire component trees across windows, while even keeping the same JS instances. Cross window state management, cross window drag&drop and cross window delta CSS updates are available.

You can find the code of the multi window covid app here.

You can find the code of the covid app here.

neo.mjs Concepts

You can find a full list of (desktop based) online examples here: Online Examples

You can pick between the 3 modes (development, dist/development, dist/production) for each one.

The Online Docs are also included inside the Online Examples.

dist/production does not support lazy loading the examples yet, but works in every browser: Online Docs (dist/production)

The development mode only works in Chrome and Safari Technology Preview, but does lazy load the example apps: Online Docs (dev mode)

Hint: As soon as you create your own apps, you want to use the docs app locally, since this will include documentation views for your own apps.

There are 3 different ways on how you can get the basics running locally. Please take a look at the Getting Started Guide.

Here is an in depth tutorial on how to build your first neo.mjs app: https://itnext.io/define-a-web-4-0-app-to-be-multi-threaded-9c495c0d0ef9?source=friends_link&sk=4d143ace05f0e9bbe82babd9433cc822

Although neo.mjs is ready to craft beautiful & blazing fast UIs, the current state is just a fraction of a bigger picture.

Take a look at the Project Story and Vision.

Another way to fasten up the neo.mjs development speed is to actively jump in. As the shiny "PRs welcome" badge suggests: open source is intended to be improved by anyone who is up for the challenge.

You can also write a guide in case you learned something new while using neo.mjs or just help to get more eyes on this project.

Either way, here are more infos: Contributing

neo.mjs is an MIT-licensed open source project with an ongoing development. So far the development was made possible with burning my (tobiu's) personal savings.

This is obviously not sustainable. To enable me keep pushing like this, please support it. The benefit of doing so is getting results delivered faster.

Sponsor tobiu

More infos: Sponsors & Backers

Logo contributed by Torsten Dinkheller.

Build with :heart: in Germany.

Copyright (c) 2015 - today, Tobias Uhlig & Rich Waters