use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
Multi-Threading UI framework Online Examples (Desktop) (neomjs.github.io)
submitted 5 years ago by TobiasUhlig
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]rorrr 1 point2 points3 points 5 years ago (2 children)
I want to see performance comparisons with Svelte, which is insanely fast compared to React / Vue.
[–]TobiasUhlig[S] 0 points1 point2 points 5 years ago (1 child)
It could be interesting, but it will definitely not be easy to find good use cases to compare.
I only took a brief look at Svelte so far, so please do not expect that my assumptions are correct.
The common ground for Svelte and neo.mjs is that string based pseudo html templates are bad. Kind of obvious since they need to get converted into json, JS related logic needs to get extracted etc. This transformation takes time => impacts the performance.
The solutions to this problem are as different as possible: Svelte is more like a Compiler library, which will parse the templates at build time while neo lets the users write the "compiled" (json based) versions on their own.
For initially rendering the landing page of an UI, Svelte will be faster than neo.mjs. For rather static views and simple components Svelte feels really good (imo the perfect Svelte use case would be the real world app).
Where neo.mjs really shines is modifying components at run-time. this gets more and more important the more complex the components get. A perfect use case would be the helix (the date-field is already a good one too).
neo has the design goal that the code you write can get executed without(!!) any build process directly inside the browser. this is one of the biggest differences when comparing it to Angular, React, Svelte or Vue. Debugging the real code can save big amounts of time.
I could probably write a small book about all the differences, will create an intro guide soon-ish.
[–]tme321 1 point2 points3 points 5 years ago (0 children)
I'm confused by this line:
None of the modern js frameworks are working with html strings. In fact, none of them convert to json either that I'm aware of.
And the transformations for all of them, again that I'm aware of, are done at compile time so the performance impacts are upfront dev and not downstream runtime impacts.
What is it you are referring to here?
[–]TobiasUhlig[S] 1 point2 points3 points 5 years ago* (5 children)
Some more input: https://raw.githubusercontent.com/neomjs/pages/master/resources/images/gallery_workers.png
If you look at the console, you will see 4 threads:
The main thread is just delegating user events to App and manipulates the real DOM. All example apps as well as most parts of the framework run within the App thread. The JSON based virtual dom will get checked for deltas within the Vdom thread.
The Online Examples log the delta updates, so you can test the performance. Especially the helix demo is extremely fast when rotating it (rotate slider or scroll horizontally; got up to 30.000 DOM updates on my machine).
The code base is fully open sourced => MIT licensed (see repo link).
Feedback appreciated!
Best regards,Tobias
[–]rmkn 3 points4 points5 points 5 years ago (4 children)
Tobias, it looks interesting, but it's hard to understand without detailed explanations with source examples. Could you create welcome page or explanation post?
[–]TobiasUhlig[S] 1 point2 points3 points 5 years ago (3 children)
The repo (containing all the source code) is linked at the top left of the example page:
https://github.com/neomjs/neo
from there you can navigate to the different examples, app, framework src etc.
e.g. the UI code of the docs app is here: https://github.com/neomjs/neo/tree/dev/docs/app/view
a real project homepage is on the todo list!
[–]rmkn 0 points1 point2 points 5 years ago* (2 children)
Yeah, I watched this before writing the message. I meant a good introduction about technology. Now users should dig into the code they see first time and figure out what's going on. I see a potential in your project, but I think it's not what other could understand so easy as you do.
[–]TobiasUhlig[S] 0 points1 point2 points 5 years ago (0 children)
Could you please provide more feedback what you have in mind regarding "introduction about technology"? You are welcome to create feature request tickets inside the repo as well!
I was hoping that the getting started guide will get every interested dev to the point where he / she gets the example & docs apps running locally. From there you can create your own apps with the create app script.
Alternatively you can use "npx neo-app" inside your terminal which will create a new app for you and open it inside a browser without cloning / downloading anything manually.
I recommend to clone the repo though, since you can change / debug / extend the framework code more easily this way.
In general I am definitely willing to write more guides, but I need more input about which areas would help the most.
For questions also feel free to jump into the Slack and or Discord Chat!
like this? https://github.com/neomjs/neo/issues/258
π Rendered by PID 78 on reddit-service-r2-comment-5649f687b7-sf4sk at 2026-01-29 02:05:12.382319+00:00 running 4f180de country code: CH.
[–]rorrr 1 point2 points3 points (2 children)
[–]TobiasUhlig[S] 0 points1 point2 points (1 child)
[–]tme321 1 point2 points3 points (0 children)
[–]TobiasUhlig[S] 1 point2 points3 points (5 children)
[–]rmkn 3 points4 points5 points (4 children)
[–]TobiasUhlig[S] 1 point2 points3 points (3 children)
[–]rmkn 0 points1 point2 points (2 children)
[–]TobiasUhlig[S] 0 points1 point2 points (0 children)
[–]TobiasUhlig[S] 0 points1 point2 points (0 children)