[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)