[HN Gopher] Show HN: Total.js - Low-code development (Node-RED a... ___________________________________________________________________ Show HN: Total.js - Low-code development (Node-RED alternative) Author : petersirka Score : 112 points Date : 2023-03-06 19:09 UTC (3 hours ago) (HTM) web link (www.totaljs.com) (TXT) w3m dump (www.totaljs.com) | ErneX wrote: | I cannot seem to find the price of the "premium" components. | petersirka wrote: | Our team is currently working on the Total.js Enterprise | service, which will provide all premium content (Private Cloud, | Flow + UI Builder, CMS widgets, CMS templates, etc.). We are | offering these components for testing purposes for some | members. The price will be appropriate and not excessive. If | someone wants only some parts, we will be able to sell them | independently. | | Feel free to email me or contact me via Telegram: | https://t.me/petersirka if you want to use some special Flow | components. | michaelteter wrote: | To use this service, you check to agree to terms which include | this: | | "By posting Content to the Service, you grant us the right and | license to use, modify, publicly perform, publicly display, | reproduce, and distribute such Content on and through the | Service. You retain any and all of your rights to any Content you | submit, post or display on or through the Service and you are | responsible for protecting those rights. You agree that this | license includes the right for us to make your Content available | to other users of the Service, who may also use your Content | subject to these Terms. You represent and warrant that: (i) the | Content is yours (you own it) or you have the right to use it and | grant us the rights and license as provided in these Terms, and | (ii) the posting of your Content on or through the Service does | not violate the privacy rights, publicity rights, copyrights, | contract rights or any other rights of any person." | | If I read this correctly, it is saying that our IP and content we | provide (config, nodes, data, etc.) still belongs to us, but they | can also use it however they want. | | Doesn't this seem a bit extreme? It seems like it could mean zero | privacy of the work we do (content added). | petersirka wrote: | There was no longer a time when we changed terms. Our company | provides content creator sites such as Bufferwall.com and other | blog post apps for blogs (therefore those conditions). But we | will update the terms this month by adding some clear | exceptions for UI Builder, cloud services, etc.. That's not | clear for all. We will get it clarified. | claytongulick wrote: | This is an extremely cool project, but after browsing the source | code a bit, it looks like it's badly in need of modernization. | | CSS is Bootstrap 3. | | The docs reference Web Components, and I do see the use of | customElements.define() so (I think?) it's using "real" Web | Components technologies, but the code is indecipherable to me: | var n = t.getAttribute('name') || ''; if (!n) | return; var p = t.getAttribute(T_PATH) || 'null'; | var c = t.getAttribute(T_CONFIG) || 'null'; var d = | t.getAttribute(T_DEFAULT) || ''; var s = '__'; | var meta = n + s + p + s + c + (d ? (s + d) : ''); | t.$jcwebcomponent = true; compilecomponent(meta, t); | | Note, this isn't the minified version, it's straight from jc.js, | not jc.min.js. | | Looking through it, most of the code is like this, and there's | liberal use of "var". This isn't a cherrypicked example. It looks | like it was originally written about six years ago, and I see | active commits, so it's really confusing to me why the code base | would be in such rough shape. | | The components implementation is very pythonic - it passes "self" | around to decorate with functions, it doesn't look like it's been | modernized to use classes. | | From a features standpoint, the project is very cool. My concern | with choosing to use it in a production app is the enormous | amount of very obvious technical debt that I'm seeing. | | At some point, this will either need a major overhaul and rewrite | (an extraordinary effort for a project this size), a dual- | implementation support (like react and a few others did, with | class based and functional APIs both supported) and a long, slow | reimplementation path, or a decay into obsolescence as the core | frameworks becomes hopelessly outdated and difficult to maintain. | | That's a really difficult technical position to be in, and I | sympathize with the challenge ahead. Clearly there are very | talented developers working on this project, I'm looking forward | to seeing how they solve these issues moving forward. | bakugo wrote: | > CSS is Bootstrap 3. | | > there's liberal use of "var" | | > The components implementation is very pythonic - it passes | "self" around to decorate with functions | | Could you explain why these things are bad, other than "it's | not the hip and trendy way to do things"? | claytongulick wrote: | Sure. | | Using Bootstrap 3 is a problem because it hasn't been | supported for over three years and is no longer actively | maintained [1]. This is a problem for many reasons, security | and maintenance among them. | | The use of var has long been understood to be problematic due | to footguns with scoping issues. It's the reason "let" was | introduced into the language, and is pretty much exclusively | used now. | | The pythonic approach isn't a problem per-se, but it also | introduces additional complexity which makes maintenance more | challenging. | | From an organizational standpoint, it's difficult to attract | and retain good talent to work on dated code. I don't think | any developer would be excited to put "Bootstrap 3" on their | resume today. If you can't attract and retain good talent, | your company and project will suffer. | | Software is like a house, there are many complex systems that | need periodic maintenance and updating. Sometimes you can | remodel the house to get rid of the aluminum wiring, etc... | and modernize it. Sometimes it's cheaper to tear down and | rebuild. But I don't think anyone would argue "Well, it | hasn't fallen over yet so just leave it". | | [1] https://endoflife.date/bootstrap | petersirka wrote: | We only use Bootstrap v3's grid system (CSS). | Boxxed wrote: | > This is an extremely cool project, but after browsing the | source code a bit, it looks like it's badly in need of | modernization. | | Just wait until I tell you about the code in your OS, your car, | and your phone... | devrand wrote: | Why can't code just be old? If it's stable, sustainable, and | able to deliver on customer needs, then who cares? The only | benefit at that point be to prevent people nitpicking that | their code uses "var". | claytongulick wrote: | In most cases, I'd agree with you - but I think this one is a | little different since the customer is a technical | implementer building a product. | | For some use cases, I think it would be fine - internal tools | that need a quick and easy solution, perhaps. | | But I don't think anyone feels great about building a product | on an aging foundation. | | Would you select Angular 1 as a UI framework for a new | project today? | | Also, I think it's hard to make a good argument for single | letter variable names, except in very rare cases. | Unfortunately, in this code base their use is the norm rather | than the exception. | petersirka wrote: | The code isn't terrible, but it's not clear to you because you | don't have the necessary information. The Total.js UI library | (jComponent) is now 50% backward compatible with the UI library | that you opened in 2014! You must know that we want to keep | long-term backward compatibility. It's not a 100% nice code and | of course, we will release a new version v20 (of UI library) | this or next year cleared from the older code. We must offer | stable tools for development, and that's critical for us and | our customers. | | This platform has been developed for around 10 years, and it | isn't easy, but we will keep doing this since it is our hobby. | claytongulick wrote: | I think the project is very cool, and I'm impressed with the | amount of functionality it has. | | I do think there's a considerable burden of technical debt in | the current code base right now that the company will need to | develop a strategy to address, which is absolutely normal for | a project of this scope and age. | | It's a tough challenge, one I've faced several times. | | Given the clear technical talent I see with the project, I | have every confidence that it's a challenge that will be | overcome, and I'm looking forward to watching the project and | seeing how it progresses. | Jarred wrote: | Node-RED is really tough for Bun to support because it relies on | sloppy mode features like implicit global variable assignment | (assigning a variable without var/let/const) and Bun currently | treats every file as ESM (and transpiles CJS for compatibility) | rubenfiszel wrote: | For Bun on workflow builders, I'm currently working on making | windmill [1] supports bun as an additional runtime to run the | typescript scripts/steps. It's not the same as making the | workflow engine run with bun (we use Rust) but I thought it | might be worth mentioning :) | | [1]: https://github.com/windmill-labs/windmill | edweis wrote: | How does it compare to Luna Park? https://luna-park.app/ | bjt2n3904 wrote: | > Premium components | | Mmmm. Guarantees I'll never touch this. | petersirka wrote: | We did a ton of free components and apps, and we have been | doing it for 10 years. - More than 10 apps - The number of UI | components exceeds 300 - The number of flow components exceeds | 100 - More than 60 components in UI Builder | | Internally, we have 9 people in full-time employment, they need | salary. As a result, we would like to sell some premium | components in order to earn money for the next development, but | that's a terrible idea according to you. Yeahh, you are really | crazy! | js4ever wrote: | It's very valid to sell premium blocks/packs. It's really | amazing to have all the rest in the MIT version open-core. | Thanks for that and don't be demoralized by some comments, we | don't all think the same. | petersirka wrote: | Thank you a lot! | gmenih wrote: | Had the unfortune to have to work with Total.js a few years ago.. | safe to say I'm never touching it again. | petersirka wrote: | 100% hate. | dkersten wrote: | Care to elaborate? Without context, your comment doesn't really | tell us anything useful to make a decision or verdict on. | petersirka wrote: | Total.js Flow is an excellent and modern Visual Programming | Interface for low-code development. It's a viable alternative to | Node-RED and fully open-source under the MIT license. | detrites wrote: | What differentiates Total.js Flow from Node-RED? Were there | frustrations with Node-RED that it was felt were best solved | starting over? | | At a glance it looks good, but unclear why one would switch. | petersirka wrote: | - multithreading - better design collected from our Web | components https://componentator.com - without third party | dependencies (in the core) - online chat support with authors | and contributors (https://t.me/totaljs) - a lot of (open | source) helpers like UI Builder - | https://uibuilder.totaljs.com (released soon), Total DB - | https://github.com/totaljs/totaldb (released soon), OpenMail, | OpenTemplates, OpenAuth, etc.. | kowlo wrote: | - multithreading | | - better design collected from our Web components | https://componentator.com | | - without third party dependencies (in the core) | | - online chat support with authors and contributors | (https://t.me/totaljs) | | A lot of (open source) helpers like | | - UI Builder https://uibuilder.totaljs.com (released soon), | | - Total DB https://github.com/totaljs/totaldb (released | soon), | | - OpenMail, OpenTemplates, OpenAuth, etc.. | emmelaich wrote: | It'd be nice for HN to support bulleted lists, so we | could go for readability without using blank lines. | petersirka wrote: | Talk to ChatGPT within Total.js Flow - | https://www.youtube.com/watch?v=K54ubAhheyA | ravenstine wrote: | That freaking corporate music though... | RcouF1uZ4gsC wrote: | When I see low-code, I find myself looking for the Visual Basic | of Web. If I could drag and drop a few pre-made controls | (including a database control), double click to handle a few | events, and have a CRUD app, I would be thrilled. | | Unfortunately, I still have not found that yet. | omnibrain wrote: | Coming from Delphi, I always think the same... | | You could check Budibase, I build a simple customer portal for | one of our customers with it. | | Now I build a "real" project with Supabase for the backend and | Vue.js + Quasar for the frontend. And that comes damn near this | vision. Only a dragn'n'drop GUI editor is missing, but with the | near zero reload-times of modern vue.js with Vite editing the | GUI in code comes near. | | There are of course several "frameworks" for Delphi, that offer | "building webapps with Delphi and then compiling it to JS & | Javascript, but I decided not to go into this direction, | because Delphi paradigmns are no good fit for the web and I | doubt I'm gonna find anyone else if I'm going to need more | manpower. | | For Delphi: | | * TMS Webcore https://www.tmssoftware.com/site/tmswebcore.asp | | * uniGUI http://www.unigui.com/ | | Delphi Inspired Pascal IDE for the Web: | | * Elevate Web Builder https://www.elevatesoft.com/home | | * Quartex Pascal https://quartexdeveloper.com/ | | * Smart Mobile Studio https://smartmobilestudio.com/ | spmurrayzzz wrote: | > Only a dragn'n'drop GUI editor is missing | | I've been giving Storybook[1] a shot to solve this problem. | Works pretty well from scratch on new projects, but importing | existing Vue components, especially from large third party | component libraries, has proven a little onerous so far for | me. But maybe you'll have a little more luck with Vue/Quasar. | | [1] https://storybook.js.org/ | petersirka wrote: | That's possible with Total.js. We offer a lot of open source | apps like Flow, UI Builder (it will be released soon officially | - missing only the website) and Total DB (it will be released | this week - missing only the website). | | Total DB: https://github.com/totaljs/totaldb UI Builder: | https://uibuilder.totaljs.com/ | | We're preparing tutorials and you will see that it's possible | to do it very easily :) | tluyben2 wrote: | Nice work. Is there an overview of which components are oss | and which are not? | petersirka wrote: | All components are open source under MIT license: https://g | ithub.com/totaljs/flowstreamcomponents/tree/main/co... | | Of course, we have some premium components (under the MIT | license) that are hidden. Also you can create Flow | components directly in Flow, that's amazing! | rubenfiszel wrote: | You might want to give a try to windmill. open-source, self- | hostable FaaS and app builder similar to retool. | | [1]: https://github.com/windmill-labs/windmill | tjchear wrote: | I actually have been wondering if we can skip drag and drop | even, and build a CRUD app with a markdown like language. | Multrex wrote: | Try OpenBlocks. I think is the most promising and fast | developing low code tool. Better than appsmith, tooljet. | | https://openblocks.dev/ | tluyben2 wrote: | Is this related to Illa somehow? The UI builder looks very | familiar. | mderazon wrote: | Does anyone know if they are using any UI toolkit for the | nodes/edges blocks or have they built it themselves? I am looking | for something something similar but for different purpose, just | the ui toolkit without any logic built on top of it ___________________________________________________________________ (page generated 2023-03-06 23:00 UTC)