23 karma · joined October 8, 2021
That's why I think app generators must be a good editor before being able to generate anything. It seems you went this way with the cool node interface.
I'm doing the same thing with https://luna-park.app, but for fullstack apps.
On the next step, I believe things like Scratch are pretty good to introduce to programming.
On the web development part, I built a little "game" as a tutorial of my tool: https://luna-park.app/challenge . It's JS with visual nodes, this is used to learn algorithmic for students.
Luna Park was indeed a npm package that you could integrate to allow users to build their own logic using visual scripting. In the end, I pivoted, and Luna Park is now a visual scripting wrapper around the Vue.js framework, allowing people to build modern webapps without code. (I also made https://roller-coaster.app to create endpoints using the visual scripting system of Luna Park)
In any case, that's super cool to see people building awesome tools like yours in the visual programming space :) ! I love how Flyde show you what node is running, and the way it executes logic is really interesting!
Hope you spend a good time solving the puzzles :)
So I've been building a web-based visual scripting engine. You might be familiar with this if you use the Unreal Engine Blueprint, or Unity Bolt, as it's the same concept.
To learn it, I built a little game where you have to solve puzzles using visual scripting. It's a bit like Advent Of Code, you have a cool backstory and puzzles with more and more complexity (but it's a lot easier)
You can check it out here: https://luna-park.app/challenge
Also, I just launched it on Product Hunt, so if you like it and you have an account, that would be awesome to support it there!
Check it out here: https://www.producthunt.com/posts/luna-park-no-code-challeng...
The problem with this: that's it's not easy to find it on Google, there's no silver bullet I guess...
Please tell me if that still doesn't work!
I'm not sure why this would be so inefficient, as the screenshot is only taken once when the magnifier is activated. In fact, I don't think we care about efficiency at all for this kind of little tool.
But thanks a lot for the link, that's super interesting, and they included a "ExcludeFromCapture" which would have been very convenient! I'll have a look how if I can integrate this into a Tauri backend!
So I'd say that Node-red is more of a workflow editor, not a visual scripting editor. You can create almost anything you would in code with Luna Park nodes. This is not the case with Node-red which is a bit higher level, and you do need to code the complex things you want to run.
Other than that, there are a lot of convenient features in Luna Park like:
- can be integrated withing any webapp (feels like Node-red needs a dedicated server to run)
- generate standalone JS code from the logic graph (to be run headless, with native performance)
- merge nodes into function that can be used as custom nodes
- type and value inspection at runtime
- a lot more nodes (generated from standard JS functions)
- and a few others features (integrated documentation, node customization, inspector, console, etc...)
Basically, Luna Park and Node-red might seem similar when looking at their UI, but they have a pretty different purpose. Node-red would be useful to automate workflows between systems. Luna Park would be useful to build those systems.
But since it's an NPM package, the transpiled and minified code is of course available for automated security scanning (it's not uglified or obfuscated).
I don't think having the project open source will change a lot about security. It's a fairly complex project, and someone manually reviewing of all the code is unlikely.
Also, malicious packages is especially a problem for very common dependencies. And Luna Park is not gonna be a hidden dependency of a lot of packages.
On a side node, maybe the editor code will go Open Source someday, but since there's no way back to that decision, I'm taking time to reflect on this.
Basically, it's a very common name for amusement parks, and it has this 70s-80s vibe I love. It's also used as a term for "amusement park" in several languages (Italian, Greek, Polish, German...).
See: https://en.wikipedia.org/wiki/Luna_Park
I wanted the branding to feel "fun", not boring. The visual scripting editor also feels like a game, and I went full gamification for the tutorial: https://luna-park.app/challenge
Btw, kinda difficult to see, but the logo is a shadow of a rollercoaster on a ramp with the moon behind.
This component then inherit a shadow DOM where all the magic happen.
See https://developer.mozilla.org/en-US/docs/Web/Web_Components/...
I admit I did not know behave-graph. It's built on the same node-based visual scripting vision, so there are a lot of similarities.
Though, a few key things I did not see in behave-graph that Luna Park provide are:
- create custom nodes with other nodes using functions
- generate standalone JS code
- type and value inspection at runtime
- a lot more nodes
- and a few others features (integrated documentation, node customization, inspector, console, etc...)
In short, behave-graph seems like a lite weight version of Luna Park.
For now, the generated code is in JS, so you'll need Node.js to execute it. Though, it could have other target languages. I keep in mind the PHP usecase, I'll see if/when I can implement this.
In the meantime, you can create custom nodes that call PHP routes of your app. Not the most performant way of doing it, but it should work.
Basically, the editor is free. You can use it in your app and logic created can be executed by interpretation.
But the compilation of the logic into plain JS will be a paid option. You'll need it if you want to trigger the logic in a performant/headless way.
The "real" dependencies are FontAwesome (icons), Vue, Pinia (vue store) and Synth Color (a custom package I made to generate color schemes)
In short, the editor is already compiled. So you just need to install the package, it will automatically download the peer dependencies, as any NPM package.
I made a small demo repo here: https://github.com/lunapark/demo (you might need to update the package.json file to point to the actual version of Luna Park thought)
So I built a visual scripting platform to make JS programming accessible... without code! I also made a series of puzzles for those who are not used to visual scripting: https://luna-park.app/challenge
For now, you can only build small scripts, but I plan to make it build entire webapps. Until then, here's a short video on how to create a userscript for example: https://www.youtube.com/watch?v=Lx89yxrcsIw