223 karma · joined March 3, 2021
https://hypermachine.substack.com
We make GUI builders, low-code platforms, and power user tools to make automation fun. Talk to us at: hello@hypermachine.org
https://twitter.com/@hypermachinehq
Also I recommend using the Rete.js library for the underlying nodes editor instead of rolling your own.
You can divide UI editors generally into two categories, those that allow arbitrary positioning and sizing, and those that don't. Those that don't are much more familiar to web developers as the underlying structure is based on relative positioning for different screensizes. In other words flexbox and breakpoints. It is also easier to use variables for fonts and other elements as there are fewer hard constraints. But if you try to use a website (or any UI) builder without arbitrary drag and drop, it gets very frustrating as your UI feels as if it is "stuck" to a particular design. Weebly and Squarespace don't even allow much changes to layout at all by the visual editor outside of pre-built components so they are significantly less powerful than Wix relatively speaking.
However they did manage to add RPA to PowerApps, which is a plus.
This is why no-code and low code are so much more successful than developers tooling startups in terms of revenue and profitability. The people using are the same people who are running the business. The value proposition is clear. "Better developer experience" alone is not sufficient for selling to enterprise. And programmer productivity cannot be quantified in lines of code written. This is hard point to explain and get across on HN because this forum is inherently dismissive of the value of RPA and RAD software.
For the HTML-over-wire part we are experimenting with a protobufs-based protocol so the backend runtime can support as many languages as possible. The most challenging part is that client-server UIs have fundamentally different assumptions about state, concurrency, and session handling compared to traditional desktop/mobile GUIs that operate on callbacks. Most of the design patterns used for your typical WinForms/Cocoa UI fail horribly in web scenarios (unless the entire app is running client side in WebAssembly) because state must be held in a DB, global variables are completely not allowed and multiple users may simultaneously access a service so any form of long-running loops or blocking code is very problematic. Serverless could help here but you will need long-running serverless containers. The current pricing models of AWS Fargate and Google Cloud Run are not compatible with this.
This is additionally complicated by the fact that many languages have async/concurrency "bolted-on". It is hard to integrate a WebSockets server into the language if there is already another event loop to deal with. This is especially problematic for feature-fragmented languages like Python where async is a relatively new concept. (See https://journal.stuffwithstuff.com/2015/02/01/what-color-is-...) Go is basically the gold standard here. Overall, we are still working on how to build the language-agnsotic backend SDKs without too much duplicate code. If you see similar systems like Streamlit and Plotly Dash, they avoid the problem entirely by making proxying the default way of embedding in third party applications. The integration is not as tight as traditional UI frameworks but avoids many of the problems with state management.
For deployment, the Blazor/LiveView/HTML-over-wire format would also require CDNs that are as close to the end user as possible for lowest UI latency. Think Zeit/Vercel or Fly.io.
There's a mailing list link below where you can be notified for when we launch:
From our experience with VBA users, this is only true for non-technical (as in STEM background) users when it comes to languages with a close-to-English syntax together with tightly integrated IDE/editor. Lua, Python (and occasionally Ruby) are two other languages that are quite "easy" to learn. The curly braces languages? Not so much. Java is especially bad due to its poor error messages and opaque package management/build tools. However being easy to learn for the users doesn't mean the users are capable of writing good code. We found that code written by amateur users tend to be rather unstructured and incoherent. On the other hand some of the cleanest codebases I have read (from those without formal instruction or experience in software engineering) are by mathematicians and electrical engineers.
In terms of tooling Glitch.com and Repl.it are best in for zero-config workflows.