<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Peter Širka</title>
    <description>The latest articles on DEV Community by Peter Širka (@petersirka).</description>
    <link>https://dev.to/petersirka</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F565977%2F03ce84d0-7e8e-4dc3-8ba6-4757f83897e8.jpeg</url>
      <title>DEV Community: Peter Širka</title>
      <link>https://dev.to/petersirka</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/petersirka"/>
    <language>en</language>
    <item>
      <title>Create UI parts visually with the power of Total.js UI Builder</title>
      <dc:creator>Peter Širka</dc:creator>
      <pubDate>Thu, 04 Apr 2024 09:20:37 +0000</pubDate>
      <link>https://dev.to/petersirka/create-ui-parts-visually-with-the-power-of-totaljs-ui-builder-44g8</link>
      <guid>https://dev.to/petersirka/create-ui-parts-visually-with-the-power-of-totaljs-ui-builder-44g8</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://totaljs.com/uibuilder/" rel="noopener noreferrer"&gt;Total.js UI Builder website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://uibuilder.totaljs.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Try Total.js UI Builder designer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;MIT license&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;In today's fast-paced digital world, the ability to craft intuitive and visually appealing user interfaces (UI) is more crucial than ever. We're delighted to introduce our innovative UI Builder Designer, a tool that prioritizes simplicity and efficiency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzxpsnh92rwj52eiow7a1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzxpsnh92rwj52eiow7a1.gif" alt="UI Builder drag &amp;amp; drop UI components"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the heart of our UI Builder Designer lies a user-friendly, drag-and-drop interface that simplifies the design process. Imagine having the power to visually assemble and customize UI elements, all in real-time! From buttons and text fields to images and sliders, our tool offers a wide array of open-source components to bring your creative vision to life.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk4ugkltcpmu1zv5epqcf.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk4ugkltcpmu1zv5epqcf.gif" alt="UI Builder design"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What sets our UI Builder Designer apart is its extraordinary flexibility and adaptability. It's a playground for creativity, offering a broad spectrum of customization options to ensure your UI looks and feels exactly how you envision it. Recognizing the importance of seamless integration in today's interconnected digital landscape, we've engineered the UI Builder to play nicely with third-party applications. This means you can effortlessly incorporate your UI creations into existing projects or workflows, enhancing your apps with beautiful, intuitive interfaces that engage and delight users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbufferwall.com%2Fdownload%2FB20240404T000001186_1600x1133.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbufferwall.com%2Fdownload%2FB20240404T000001186_1600x1133.jpg" alt="Total.js UI builder"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Top features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open source (MIT license)&lt;/li&gt;
&lt;li&gt;Input/Output from the UI builder is structured JSON data (&lt;a href="https://cdn.componentator.com/uibuilder/demo/dashboard.json" rel="noopener noreferrer"&gt;example&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;UI components can be serialized directly to the design or loaded from any server.&lt;/li&gt;
&lt;li&gt;Easy customization.&lt;/li&gt;
&lt;li&gt;Floating mode (look at the &lt;a href="https://uibuilder.totaljs.com/?url=https://cdn.componentator.com/uibuilder/demo/flowboard.json" rel="noopener noreferrer"&gt;Flowboard example&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;It supports two modes: &lt;code&gt;editor&lt;/code&gt; and &lt;code&gt;render&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;It's simple to integrate with any existing web app with the help of the &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; element.&lt;/li&gt;
&lt;li&gt;It's only a client-side solution, and it works without a special environment.&lt;/li&gt;
&lt;li&gt;It includes many open-source UI components.&lt;/li&gt;
&lt;li&gt;It's fully open-source.&lt;/li&gt;
&lt;li&gt;You can provide the UI Builder designer directly on your server (it's very small app).&lt;/li&gt;
&lt;li&gt;Localization&lt;/li&gt;
&lt;li&gt;Versioning&lt;/li&gt;
&lt;li&gt;The UI builder source-code is less than 1 MB with pictures!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Render example&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbufferwall.com%2Fdownload%2FB20240404T000001189_800x753.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbufferwall.com%2Fdownload%2FB20240404T000001189_800x753.jpg" alt="Render"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Did you know about Total.js UI Builder?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You can create your own set of components.&lt;/li&gt;
&lt;li&gt;You can mix multiple sets of components.&lt;/li&gt;
&lt;li&gt;You can create UI parts as UI components collected from the included UI components.&lt;/li&gt;
&lt;li&gt;You can render the same design as &lt;a href="https://en.wikipedia.org/wiki/Multiple-document_interface" rel="noopener noreferrer"&gt;&lt;code&gt;MDI&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Your UI design can communicate with your REST endpoints or through the WebSocket.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What can I design with the UI Builder?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://uibuilder.totaljs.com/?url=https://cdn.componentator.com/uibuilder/demo/controls.json" rel="noopener noreferrer"&gt;UI forms&lt;/a&gt; (like orders forms, contact forms, etc.)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://uibuilder.totaljs.com/?url=https://cdn.componentator.com/uibuilder/demo/dashboard.json" rel="noopener noreferrer"&gt;Dashboards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://uibuilder.totaljs.com/?url=https://cdn.componentator.com/uibuilder/demo/flowboard.json" rel="noopener noreferrer"&gt;Flowboards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Complete pages like, e.g., product lists, product details, order lists, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you use the Total.js UI library, the &lt;a href="https://componentator.com/components/j-uibuilder/" rel="noopener noreferrer"&gt;j-UI Builder component&lt;/a&gt; can be used to render UI designs. Also, we have prepared advanced UI components like &lt;a href="https://componentator.com/components/j-uieditor/" rel="noopener noreferrer"&gt;UI Editor&lt;/a&gt; and &lt;a href="https://componentator.com/components/j-uistudio/" rel="noopener noreferrer"&gt;UI Studio&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Total.js Integration
&lt;/h2&gt;

&lt;p&gt;We prepared various integrations for the UI Builder in the Total.js Platform apps. The below integrations are part of the &lt;a href="https://www.totaljs.com/enterprise/" rel="noopener noreferrer"&gt;Total.js Enterprise service&lt;/a&gt;, and they aren't free. Next, we have prepared the main components of the &lt;a href="https://github.com/alphagov/govuk-frontend" rel="noopener noreferrer"&gt;Gov.uk frontend&lt;/a&gt;, and they are also part of the &lt;strong&gt;Total.js Enterprise service&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Total.js CMS
&lt;/h3&gt;

&lt;p&gt;We integrated Total.js UI Builder directly into the &lt;a href="https://www.totaljs.com/cms/" rel="noopener noreferrer"&gt;Total.js CMS&lt;/a&gt;, and the CMS admin can easily make &lt;code&gt;forms&lt;/code&gt; and join multiple UI designs directly in the CMS Visual Programming Interface. So the admin is able to process incoming data from UI design and return another UI design.&lt;/p&gt;

&lt;p&gt;The below example shows a simple form called "Survery", and after submitting the form, the flow returns a new UI design: "Thank you" (message). The data from the "Survey" form is processed and sent as e-mail messages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbufferwall.com%2Fdownload%2FB20240404T000001187_1032x742.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbufferwall.com%2Fdownload%2FB20240404T000001187_1032x742.jpg" alt="Total.js CMS + Total.js Flow + Total.js UI Builder"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Total.js Flow
&lt;/h3&gt;

&lt;p&gt;We prepared &lt;strong&gt;Flow components&lt;/strong&gt; for integrating &lt;a href="https://github.com/totaljs/uistudio" rel="noopener noreferrer"&gt;Total.js UI Studio&lt;/a&gt; with the &lt;a href="https://www.totaljs.com/flow/" rel="noopener noreferrer"&gt;Total.js Flow&lt;/a&gt;. It offers the same functionality as I mentioned above.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbufferwall.com%2Fdownload%2FB20240404T000001188_1032x709.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fbufferwall.com%2Fdownload%2FB20240404T000001188_1032x709.jpg" alt="Total.js Flow + Total.js UI Builder"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What next?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://uibuilder.totaljs.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;Try Total.js UI Builder designer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/apps/" rel="noopener noreferrer"&gt;Browse all Total.js apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/community/" rel="noopener noreferrer"&gt;Join our community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Are you interested in implementing UI Builder into your products? &lt;a href="https://www.totaljs.com/community/" rel="noopener noreferrer"&gt;Contact us&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>designer</category>
      <category>ui</category>
      <category>javascript</category>
      <category>uibuilder</category>
    </item>
    <item>
      <title>Build portals and intranets in Node.js</title>
      <dc:creator>Peter Širka</dc:creator>
      <pubDate>Mon, 06 Mar 2023 14:39:03 +0000</pubDate>
      <link>https://dev.to/petersirka/build-portals-and-intranets-in-nodejs-b2e</link>
      <guid>https://dev.to/petersirka/build-portals-and-intranets-in-nodejs-b2e</guid>
      <description>&lt;p&gt;We provide an open-source &lt;a href="https://www.totaljs.com/openplatform/" rel="noopener noreferrer"&gt;Node.js product for building portals and intranets&lt;/a&gt; called &lt;strong&gt;OpenPlatform&lt;/strong&gt;. &lt;a href="https://www.totaljs.com/openplatform/" rel="noopener noreferrer"&gt;OpenPlatform&lt;/a&gt; is a very flexible and small solution for integrating 3rd party apps which can be written in various technologies or versions that you will love ❤️ . &lt;a href="https://www.totaljs.com/openplatform/" rel="noopener noreferrer"&gt;Node.js OpenPlatform&lt;/a&gt; is fully open-source under the MIT license.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Website: &lt;a href="https://www.totaljs.com/openplatform/" rel="noopener noreferrer"&gt;https://www.totaljs.com/openplatform/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Documentation: &lt;a href="https://docs.totaljs.com/openplatform/" rel="noopener noreferrer"&gt;https://docs.totaljs.com/openplatform/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Source code: &lt;a href="https://github.com/totaljs/openplatform/" rel="noopener noreferrer"&gt;https://github.com/totaljs/openplatform/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;License: &lt;strong&gt;MIT license&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.producthunt.com/posts/build-portals-and-intranets-in-node-js" rel="noopener noreferrer"&gt;OpenPlatform on ProductHunt&lt;/a&gt; 👍&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is the OpenPlatform?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;OpenPlatform&lt;/strong&gt; is a stylish and straightforward &lt;a href="https://www.totaljs.com/openplatform/" rel="noopener noreferrer"&gt;&lt;strong&gt;Portal / Intranet system&lt;/strong&gt;&lt;/a&gt; for running, integrating, and managing multiple third-party web applications. OpenPlatform provides running applications with a set of services, such as user, security and app management or notifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenPlatform provides third party apps in iframes (with a simple tokenization workflow)&lt;/strong&gt;. When a user believes they have only one solution, in reality, they use different applications on different hostnames. Developers are not restricted, they can use anything like &lt;strong&gt;Java, .NET, Python, RoR, PHP, Node.js, Go, …&lt;/strong&gt; in combination with &lt;strong&gt;Vue, React, Angular, Ember, jQuery, …&lt;/strong&gt; for creating apps optimized for OpenPlatform. Instead of creating one monolith solution, you can integrate/create many apps into one portal. This solution has a lot of pros in terms of long-term benefits like updating, security, scalability, etc.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;OpenPlatform is an &lt;a href="https://www.totaljs.com/openplatform/" rel="noopener noreferrer"&gt;enterprise-ready solution&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj4f42gr09jwwwvar59aw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj4f42gr09jwwwvar59aw.gif" alt="OpenPlatform preview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ready for customization
&lt;/h2&gt;

&lt;p&gt;We have prepared OpenPlatform that can be customized according to your needs. Developers can change the existing portal layouts or create new ones. Data about users, apps, groups and permissions is stored in a PostgreSQL database under the &lt;strong&gt;"op"&lt;/strong&gt; schema.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Fully optimized for 3rd party apps integration&lt;/li&gt;
&lt;li&gt;Easy to customize&lt;/li&gt;
&lt;li&gt;Easy to localize&lt;/li&gt;
&lt;li&gt;Low HW requirements&lt;/li&gt;
&lt;li&gt;User management&lt;/li&gt;
&lt;li&gt;App management&lt;/li&gt;
&lt;li&gt;Groups and permission management&lt;/li&gt;
&lt;li&gt;Optimized for mobile devices&lt;/li&gt;
&lt;li&gt;Simple tokenization&lt;/li&gt;
&lt;li&gt;MIT license&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Various implementation
&lt;/h2&gt;

&lt;p&gt;Total.js OpenPlatform has been around for more than 4 years. We have deployed it in many projects around the world. The latest version is v5 with very elegant code and fully prepared for various customization.&lt;/p&gt;

&lt;h3&gt;
  
  
  OpenPlatform gallery
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgnrpwjuk89ujqr8ya2jc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgnrpwjuk89ujqr8ya2jc.jpg" alt="Helpdesk"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8enw08vzzuhdtbce4a8t.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8enw08vzzuhdtbce4a8t.jpg" alt="Apps"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faulnaoyzvbh5vyia5uic.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faulnaoyzvbh5vyia5uic.jpg" alt="IoT"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5c04vyrkxoh1mhh991jb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5c04vyrkxoh1mhh991jb.jpg" alt="Map"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpv0g9j7wspvjd47d7b7z.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpv0g9j7wspvjd47d7b7z.jpg" alt="Intranet system Icone"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd5avy3z8h5605wlztj9w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd5avy3z8h5605wlztj9w.jpg" alt="Intranet system Icone"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9dsa124gpc3xbtv270v7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9dsa124gpc3xbtv270v7.jpg" alt="Alarms / Rule engine"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3krq57get36ziusmnogj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3krq57get36ziusmnogj.jpg" alt="HelpDesk"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to test it?
&lt;/h2&gt;

&lt;p&gt;You can test it as a Docker container. Follow simple installation instructions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.totaljs.com/openplatform/" rel="noopener noreferrer"&gt;https://docs.totaljs.com/openplatform/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Follow the video below:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/rnIAoXOIjG4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://t.me/totaljs" rel="noopener noreferrer"&gt;Join Total.js Telegram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://platform.totaljs.com" rel="noopener noreferrer"&gt;Sign-in to Total.js Platform&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>portal</category>
      <category>intranet</category>
      <category>node</category>
      <category>javascript</category>
    </item>
    <item>
      <title>The top 10 features of Total.js Flow</title>
      <dc:creator>Peter Širka</dc:creator>
      <pubDate>Fri, 10 Feb 2023 21:03:05 +0000</pubDate>
      <link>https://dev.to/petersirka/the-top-10-features-of-totaljs-flow-598c</link>
      <guid>https://dev.to/petersirka/the-top-10-features-of-totaljs-flow-598c</guid>
      <description>&lt;p&gt;Total.js Flow is a web-based graphical programming interface that provides a user-friendly and modern experience for low-code development through the use of a web browser. You can use it as an alternative to &lt;strong&gt;Node-RED&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/flow/" rel="noopener noreferrer"&gt;Total.js Flow website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Open-Source (MIT)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.producthunt.com/posts/total-js-flow?utm_source=badge-featured&amp;amp;utm_medium=badge&amp;amp;utm_souce=badge-total-js-flow" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fapi.producthunt.com%2Fwidgets%2Fembed-image%2Fv1%2Ffeatured.svg%3Fpost_id%3D377673%26theme%3Dlight" alt="Total.js Flow on Product Hunt" width="250" height="54"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.totaljs.com%2Fdownload%2Fsnoo002gi40d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.totaljs.com%2Fdownload%2Fsnoo002gi40d.jpg" alt="Total.js Flow" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Low hardware requirements
&lt;/h2&gt;

&lt;p&gt;Total.js Flow can be used anywhere you are able to provide the Node.js Platform. You can run the Flow on devices like &lt;a href="https://www.raspberrypi.org/" rel="noopener noreferrer"&gt;Raspberry Pi&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Without third-party dependencies
&lt;/h2&gt;

&lt;p&gt;In the core, Total.js Flow does not use any external third-party dependencies, but it does not restrict you from using any external dependencies used in the components.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Multithreading
&lt;/h2&gt;

&lt;p&gt;This is a key feature. Each flow design (called FlowStream) is provided as an independent worker process, with its own components, memory and CPU resources.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Component's editor
&lt;/h2&gt;

&lt;p&gt;You can create your own Flow components or customize existing Flow components directly in the Flow. You don't need any special tools, compilers for creating components.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Real-time traffic indicator
&lt;/h2&gt;

&lt;p&gt;You can see traffic between components with flowing data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.totaljs.com%2Fdownload%2Ff870001sj41d.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.totaljs.com%2Fdownload%2Ff870001sj41d.gif" alt="Real-time traffic indicator" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Bundling Flows to components
&lt;/h2&gt;

&lt;p&gt;You can easily bundle a Flow design as a Flow component and use it multiple times in other Flows.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Beautiful user interface
&lt;/h2&gt;

&lt;p&gt;Total.js Flow offers a really nice UI built on top of Web components technology.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Running
&lt;/h2&gt;

&lt;p&gt;You can evaluate flow design either as a server-less app or as an application without a UI.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Fully integrated with Total.js OpenPlatform
&lt;/h2&gt;

&lt;p&gt;Total.js Flow is fully optimized for use on the &lt;a href="https://www.totaljs.com/openplatform/" rel="noopener noreferrer"&gt;Total.js OpenPlatform&lt;/a&gt;. The OpenPlatform is a portal solution for integrating third-party apps.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/openplatform/" rel="noopener noreferrer"&gt;Total.js OpenPlatform&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  10. Usability
&lt;/h2&gt;

&lt;p&gt;Total.js Flow can be used almost everywhere. Industry/home automation, data processing, monitoring, as a configuration tool, for creating REST services, etc.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/7hfh3fWuoKg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/support/" rel="noopener noreferrer"&gt;&lt;strong&gt;Make the Total.js Platform better, support it!&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/contact/" rel="noopener noreferrer"&gt;Have any questions? Contact us&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>algorithms</category>
      <category>discuss</category>
    </item>
    <item>
      <title>What is the Total.js Platform?</title>
      <dc:creator>Peter Širka</dc:creator>
      <pubDate>Mon, 30 Jan 2023 15:12:54 +0000</pubDate>
      <link>https://dev.to/petersirka/what-is-the-totaljs-plaform-25pi</link>
      <guid>https://dev.to/petersirka/what-is-the-totaljs-plaform-25pi</guid>
      <description>&lt;p&gt;The Total.js Platform is a collection of &lt;strong&gt;Node.js server-side&lt;/strong&gt; and &lt;strong&gt;JavaScript client-side libraries&lt;/strong&gt; targeted for &lt;strong&gt;web&lt;/strong&gt;, &lt;strong&gt;intranet&lt;/strong&gt;, &lt;strong&gt;IoT&lt;/strong&gt; and &lt;strong&gt;hybrid mobile apps development&lt;/strong&gt;. The platform contains tools and apps for developers or IT companies. &lt;strong&gt;The main programming language is JavaScript on both sides&lt;/strong&gt;. Developers can write apps quickly and easily in Notepad without any special tools or programs.&lt;/p&gt;

&lt;p&gt;Libraries, components, and icons are all open-source under the &lt;strong&gt;MIT license&lt;/strong&gt;. This means you can use them for commercial and non-commercial purposes without any restrictions or fees whatsoever. Total.js Platform is one of the most complex Node.js/JavaScript platforms in the world, according to us.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.totaljs.com"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DCjr9URd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kwzlnqemis84r0hu5j4y.jpg" alt="Total.js Logo" width="250" height="96"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Server-side
&lt;/h2&gt;

&lt;p&gt;Our main server-side technology is the &lt;a href="https://nodejs.org/en/"&gt;Node.js Platform&lt;/a&gt;. We have written a framework called Total.js that uses Node.js. The framework allows you to create quickly and easily REST services, web apps, intranet apps, IoT data processing, etc. It works on Linux, Unix and Windows operating systems with low hardware requirements (you can run Total.js on e.g. RPI). The Total.js server-side framework supports most NPM dependencies and can be used with any database, such as PostgreSQL, MongoDB, MySQL, SQL Server, Redis, CouchDB, RethinkDB, etc.&lt;/p&gt;

&lt;p&gt;This framework uses an MVC architecture and its primary goal was to provide everything necessary for web development. It contains a lot of helpful parts like HTTP server with full support of Web Socket, Server-Sent events, SMTP implementation, LDAP search, View Engine, NoSQL embedded database, Schemas, real-time merging and minification of static content (JS + CSS + HTML) and a ton of utilities. &lt;strong&gt;The framework does not depend on third-party dependencies, but it does not prevent you from using them.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Read me:&lt;/strong&gt;&lt;br&gt;The Total.js framework can be used with any client-side technology, including Vue, React, Ember, jQuery, etc.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Size around 1.3 MB&lt;/li&gt;
&lt;li&gt;Basic memory usage is 8 MB&lt;/li&gt;
&lt;li&gt;Without third-party dependencies&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Client-side
&lt;/h2&gt;

&lt;p&gt;Also, the Total.js Platform contains a client-side library called the Total.js UI library (previously jComponent). The main goal of the library is to create reusable UI components and single-page apps with long-term support. The library has implemented &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Web_Components"&gt;the Web components architecture&lt;/a&gt;. It offers a lot of functionality like creating reusable UI components, routing, AJAX operations, localization, a template engine, versioning and a ton of helpers. You can write web or mobile hybrid apps without third-party dependencies. Our library includes high-quality open-source &lt;a href="https://componentator.com/icons/"&gt;Font Icons with more than 400 icons&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.totaljs.com/posts/1554872001ei71b/"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t26lwV43--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9f7ru99kntws8aj4x30p.jpg" alt="More than 400 icons" width="880" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More than &lt;a href="https://componentator.com/"&gt;300 reusable UI components&lt;/a&gt; have been prepared under the MIT license. You can browse all &lt;strong&gt;Web components&lt;/strong&gt; with real-time preview on &lt;a href="https://componentator.com"&gt;https://componentator.com&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Read me:&lt;/strong&gt;&lt;br&gt;The Total.js UI library can be used with any backend technology like .NET, Java, PHP, Python, RoR, etc.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.js&lt;/code&gt; libary 85 kB (gzipped)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.css&lt;/code&gt; library 22 kB (gzipped)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://componentator.com/"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NzmDqWOT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mp0s0khlkz88l6hhufs.jpg" alt="UI Web Components" width="800" height="568"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Total.js Apps
&lt;/h2&gt;

&lt;p&gt;A number of &lt;a href="https://www.totaljs.com/apps/"&gt;useful open-source Total.js&lt;/a&gt; apps have been developed by us. The apps are written entirely in Total.js. The most used apps are:&lt;/p&gt;

&lt;h3&gt;
  
  
  Total.js Flow
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.totaljs.com/flow/"&gt;Total.js Flow&lt;/a&gt; is a visual programming interface for low-code development accessible through a web browser. It's a strong alternative to &lt;strong&gt;Node-RED&lt;/strong&gt; with many great features.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/flow/"&gt;Flow website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WYKRrHTK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fg0deuv7d6s22pf9qbpv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WYKRrHTK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fg0deuv7d6s22pf9qbpv.jpg" alt="Total.js Flow" width="880" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/7hfh3fWuoKg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Total.js OpenPlatform
&lt;/h3&gt;

&lt;p&gt;It's a portal-based solution that can be used as an intranet solution for small and medium companies or teams. OpenPlatform is a small app fully optimized for integrating third-party apps written in any technology.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/openplatform/"&gt;OpenPlatform website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M3HatZ4Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3qjfksfic7pq2w06k3rk.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M3HatZ4Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3qjfksfic7pq2w06k3rk.gif" alt="Total.js OpenPlatform" width="640" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Other apps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/code/"&gt;Total.js Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/cms/"&gt;Total.js CMS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/superadmin/"&gt;Total.js SuperAdmin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Total.js TotalDB (coming soon)&lt;/li&gt;
&lt;li&gt;Total.js UI Builder (coming soon)&lt;/li&gt;
&lt;li&gt;Total.js HelpDesk (coming soon)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tools:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/opensync/"&gt;Total.js OpenSync&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/openmail/"&gt;Total.js OpenMail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/openfiles/"&gt;Total.js OpenFiles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/openauth/"&gt;Total.js OpenAuth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/openlogger/"&gt;Total.js OpenLogger&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How do we make money?
&lt;/h2&gt;

&lt;p&gt;It is very difficult to find funding for creating rich and open-source content. Primary funding is from support services and we help to code/develop solutions built on the Total.js Platform around the world. Then we have cloud services, stable partners and additionally, we are developing the Total.js Enterprise service that will give developers access to more open-source premium content like components for the Flow, UI Builder, CMS templates, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Working on the Total.js Platform for 10 years&lt;/strong&gt;, we evolved from a one-man show to an internal team of nine people.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/support/"&gt;&lt;strong&gt;Make the Total.js Platform better, support it!&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/contact/"&gt;Have any questions? Contact us&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://t.me/totaljs"&gt;Join Total.js Telegram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Total.js FlowStream v1</title>
      <dc:creator>Peter Širka</dc:creator>
      <pubDate>Thu, 24 Jun 2021 09:24:53 +0000</pubDate>
      <link>https://dev.to/petersirka/total-js-flowstream-v1-3jh1</link>
      <guid>https://dev.to/petersirka/total-js-flowstream-v1-3jh1</guid>
      <description>&lt;p&gt;We are pleased to announce a new project called Total.js FlowStream app. &lt;code&gt;FlowStream&lt;/code&gt; algorithm is part of the Total.js framework, and the Total.js FlowStream app is an advanced GUI and mechanism for running and integrating multiple FlowStreams. &lt;strong&gt;The performance is incredible.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/flowstream/?run=1"&gt;&lt;strong&gt;Try FlowStream now&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/flowstream/"&gt;FlowStream Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub repository: &lt;a href="https://github.com/totaljs/flowstream"&gt;https://github.com/totaljs/flowstream&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Follow install instructions&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;FlowStream components repository: &lt;a href="https://github.com/totaljs/flowstreamcomponents"&gt;&lt;/a&gt;&lt;a href="https://github.com/totaljs/flowstreamcomponents"&gt;https://github.com/totaljs/flowstreamcomponents&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--33ktc-Yc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxz7f4ecgos07pj4yemc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--33ktc-Yc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxz7f4ecgos07pj4yemc.png" alt="TMS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Minimal requirements&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js v14&lt;/li&gt;
&lt;li&gt;The latest version of the Total.js 4 framework &lt;code&gt;$ npm install total4&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Differences between Flow and FlowStream
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Total.js Flow&lt;/strong&gt; is a single-thread Node.js app that allows you to built only a one-level Flow design divided into multiple tabs. &lt;strong&gt;Total.js FlowStream&lt;/strong&gt; uses a very similar technique, but each FlowStream can be executed in the worker thread (independent thread), and each FlowStream can run other FlowStreams inside as e.g. components. Each FlowStream contains its variables and (&lt;strong&gt;important&lt;/strong&gt;) it's own components with their declarations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Total.js FlowStream&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FlowStream instance is an independent sandbox instance running in the Worker-Thread (by default)&lt;/li&gt;
&lt;li&gt;FlowStream can run other FlowStreams inside as the components&lt;/li&gt;
&lt;li&gt;Each FlowStream contains its variables and components with their full declaration&lt;/li&gt;
&lt;li&gt;Prepared for various customization and implementation&lt;/li&gt;
&lt;li&gt;FlowStream meta-data can be saved/can be read from everywhere, e.g. from DB&lt;/li&gt;
&lt;li&gt;FlowStream app is the integrator for Total.js Message Service (TMS)&lt;/li&gt;
&lt;li&gt;FlowStream app supports real-time creating of FlowStream components (supports Code editor)&lt;/li&gt;
&lt;li&gt;Excellent performance because workers can process thousands of messages in a short time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Total.js Flow&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flow is a single-thread instance &lt;/li&gt;
&lt;li&gt;Flow can't encapsulate another Flow&lt;/li&gt;
&lt;li&gt;Flow can't run in the worker thread&lt;/li&gt;
&lt;li&gt;Flow is end-product&lt;/li&gt;
&lt;li&gt;Flow doesn't support Total.js Message Service (TMS)&lt;/li&gt;
&lt;li&gt;Flow does not support the creation/modifying of Flow components in real-time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dJkXvCYn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sd2vd76t1d9d6umzeqs1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dJkXvCYn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sd2vd76t1d9d6umzeqs1.png" alt="FlowStream"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Try Total.js FlowStream today
&lt;/h2&gt;

&lt;p&gt;You can try &lt;a href="https://www.totaljs.com/flowstream/?run=1"&gt;&lt;strong&gt;Total.js FlowStream&lt;/strong&gt;&lt;/a&gt; in &lt;a href="https://www.totaljs.com/flowstream/?run=1"&gt;&lt;strong&gt;Total.js Cloud&lt;/strong&gt;&lt;/a&gt; or download the repository, follow install instructions.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;a href="https://t.me/totaljs"&gt;Join Total.js Telegram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://platform.totaljs.com/"&gt;Sign-in to Total.js Platform&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>nodered</category>
    </item>
    <item>
      <title>Node.js Files app</title>
      <dc:creator>Peter Širka</dc:creator>
      <pubDate>Mon, 21 Jun 2021 07:42:00 +0000</pubDate>
      <link>https://dev.to/petersirka/node-js-files-app-353c</link>
      <guid>https://dev.to/petersirka/node-js-files-app-353c</guid>
      <description>&lt;p&gt;We are happy to announce a new &lt;strong&gt;Node.js app&lt;/strong&gt; called &lt;strong&gt;Files&lt;/strong&gt;. &lt;strong&gt;The Files app&lt;/strong&gt; is a simple Node.js web application for storing and managing files on the server. The app is fully open-source, and you can modify it according to your needs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://t.me/totaljs"&gt;Join Total.js Telegram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/files/?run=1"&gt;Run &lt;strong&gt;Files app&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Open-source (&lt;strong&gt;MIT license&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--93Fi0KzN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rol94ji290x90n9nolig.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--93Fi0KzN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rol94ji290x90n9nolig.png" alt="Node.js Files app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Files app
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;without dependencies&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;without database&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;uncomplicated usage&lt;/li&gt;
&lt;li&gt;supports drag &amp;amp; drop uploading files&lt;/li&gt;
&lt;li&gt;supports search&lt;/li&gt;
&lt;li&gt;supports Total.js Message Service (TMS)&lt;/li&gt;
&lt;li&gt;beautiful user interface&lt;/li&gt;
&lt;li&gt;nice features&lt;/li&gt;
&lt;li&gt;fully extensible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Requirements&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js +v12&lt;/li&gt;
&lt;li&gt;Total.js 4 - &lt;code&gt;$ npm install total4&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Download and run&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/files/"&gt;Files website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/totaljs/files"&gt;&lt;strong&gt;Download source-code&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://t.me/totaljs"&gt;Join our community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try Total.js Files today
&lt;/h2&gt;

&lt;p&gt;You can try &lt;strong&gt;Total.js Files&lt;/strong&gt; in &lt;a href="https://www.totaljs.com/files/?run=1"&gt;&lt;strong&gt;Total.js Cloud&lt;/strong&gt;&lt;/a&gt; or download the repository, and follow install instructions.&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>totaljs</category>
      <category>apps</category>
    </item>
    <item>
      <title>New version of Total.js 4 framework (0.0.43)</title>
      <dc:creator>Peter Širka</dc:creator>
      <pubDate>Tue, 08 Jun 2021 19:43:28 +0000</pubDate>
      <link>https://dev.to/petersirka/new-version-of-total-js-4-framework-0-0-43-4l6d</link>
      <guid>https://dev.to/petersirka/new-version-of-total-js-4-framework-0-0-43-4l6d</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://t.me/totaljs"&gt;Join Total.js Telegram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://platform.totaljs.com/"&gt;Sign-in to Total.js Platform&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We have officially released a new version of Total.js framework 4 (v0.0.43). This version brings great new features that you will love. &lt;strong&gt;Total.js framework is still without dependencies&lt;/strong&gt;, and that's a good benefit for all developers. The new version brings great new features and fixes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install Total.js 4 framework via NPM: &lt;code&gt;$ npm install total4&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;or download &lt;a href="https://github.com/totaljs/framework4"&gt;the Total.js framework source-code&lt;/a&gt; from GitHub&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Integrated LDAP search
&lt;/h2&gt;

&lt;p&gt;We have integrated &lt;strong&gt;LDAP search&lt;/strong&gt; into the Total.js framework directly. So you can easily synchronize or sign-in user via LDAP protocol with your e.g. &lt;strong&gt;Active Directory&lt;/strong&gt; (AD) with the help of the Total.js framework directly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.totaljs.com/total4/407ff001jy51c/#91810001ay51c"&gt;Total.js &lt;strong&gt;LDAP documentation&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;opt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;
&lt;span class="nx"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ldap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;
&lt;span class="nx"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ldap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;port&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;389&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ldap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;host&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;IP_or_HOSTNAME&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;person&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ou=KIMS,dc=adtest,dc=ad&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;CN=op-user,OU=SOP_system_acc,OU=SOP,OU=Users,OU=KIMS,DC=adtest,DC=ad&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;password&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;password&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;LDAP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// @err {Error}&lt;/span&gt;
    &lt;span class="c1"&gt;// @response {Object Array}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Total.js framework supports TypeScript
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Helferino"&gt;Helferino&lt;/a&gt; added support for &lt;strong&gt;TypeScript&lt;/strong&gt;, but we don't recommend it for the development of Total.js applications. The reason is simple (many developers will not agree): we don't see any more significant advantage of TypeScript.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download: &lt;a href="https://github.com/totaljs/emptyproject-typescript"&gt;Total.js TypeScript project template&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  JSON schemas
&lt;/h2&gt;

&lt;p&gt;The new version of Total.js supports JSON schemas. Total.js framework automatically processes all JSON schemas stored in &lt;code&gt;/app/jsonschemas/*.json&lt;/code&gt; directory. Also JSON schemas can be defined programmatically via &lt;code&gt;NEWJSONSCHEMA()&lt;/code&gt; method.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Usage&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Validates data according to the JSON schema&lt;/span&gt;
&lt;span class="nx"&gt;JSONSCHEMA&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;schema_name&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// @err {ErrorBuilder} error handling (nullable)&lt;/span&gt;
    &lt;span class="c1"&gt;// @response {Object} data will be prepared according to the JSON schema&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// Validates data according to the raw JSON schema object&lt;/span&gt;
&lt;span class="nx"&gt;JSONSCHEMA&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;$id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// @err {ErrorBuilder} error handling (nullable)&lt;/span&gt;
    &lt;span class="c1"&gt;// @response {Object} data will be prepared according to the JSON schema&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;JSON Schemas can be used instead of Total.js Schemas:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;NEWSCHEMA&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="c1"&gt;// This schema inherits all fields from the JSON schema "user"&lt;/span&gt;
    &lt;span class="nx"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;jsonschema&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setInsert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// do something&lt;/span&gt;
        &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;success&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inline generator for JSON schemas:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;name:String, age:Number&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toJSONSchema&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Good to know:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JSON schemas can be generated from the Total.js Schemas too&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Total.js Message Service (TMS)
&lt;/h2&gt;

&lt;p&gt;We have added a new pub/sub pattern for integrating multiple Total.js applications. You can use &lt;a href="https://github.com/totaljs/flowstream"&gt;Total.js FlowStream app&lt;/a&gt; for integrating multiple Total.js applications via TMS. This is one of the most significant new feature in the Total.js framework. &lt;strong&gt;TMS uses JSON schemas / Total.js schemas for preparing data&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download &lt;a href="https://github.com/totaljs/examples/tree/master/tms"&gt;TMS Example&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Download integrator app: &lt;a href="https://github.com/totaljs/flowstream"&gt;FlowStream app&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The integrator app automatically downloads all publishers and subscribers.  Then creates components for the FlowStream app. Look to the picture below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GNDIngG9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s967pqulpw5fz9nunc7s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GNDIngG9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s967pqulpw5fz9nunc7s.png" alt="Total.js Message Service"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First you need to define all publisher/subscribers&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// NEWPUBLISH('publisher_name', 'JSON Schema or Total.js Schema or Inline Schema');&lt;/span&gt;
&lt;span class="nx"&gt;NEWPUBLISH&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;users_insert&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;NEWPUBLISH&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;users_update&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;NEWPUBLISH&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;users_remove&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;NEWSUBSCRIBE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;users_insert&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;NEWSUBSCRIBE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;address_insert&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;city:String, zip:String(20), country:String&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Usage&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;NEWSCHEMA&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="nx"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setInsert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

        &lt;span class="c1"&gt;// ...&lt;/span&gt;
        &lt;span class="c1"&gt;// ...&lt;/span&gt;

        &lt;span class="nx"&gt;PUBLISH&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;users_insert&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="c1"&gt;// ...&lt;/span&gt;
        &lt;span class="c1"&gt;// ...&lt;/span&gt;

        &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;success&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;SUBSCRIBE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;users_insert&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;EXEC&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;+Users --&amp;gt; insert&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We add step-by-step TMS integration to all Total.js open-source apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Improved FlowStream
&lt;/h2&gt;

&lt;p&gt;FlowStream is one of the best features in the Total.js 4 framework, and it opens many possibilities for various implementations/cases/projects. It's advanced version of Total.js Flow and fully customizable. The &lt;strong&gt;FlowStream app&lt;/strong&gt; moves the FlowStream to the super level, and each FlowStream runs in an independent worker thread.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download &lt;a href="https://github.com/totaljs/flowstream"&gt;FlowStream app&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4w7Jni6C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h3gfumo1msrtctw7nwi7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4w7Jni6C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h3gfumo1msrtctw7nwi7.png" alt="FlowStream app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Added support for debugging of bundles
&lt;/h2&gt;

&lt;p&gt;This feature allows you to debug source-code in the &lt;code&gt;.src&lt;/code&gt; directory. In other words: The total.js application doesn't extract and rewrite bundles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Usage&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create file &lt;code&gt;bundles.debug&lt;/code&gt; in the root of app directory&lt;/li&gt;
&lt;li&gt;restart app&lt;/li&gt;
&lt;li&gt;and then you can modify each file in &lt;code&gt;.src&lt;/code&gt; directory&lt;/li&gt;
&lt;li&gt;watcher will monitor only changes in &lt;code&gt;.src&lt;/code&gt; directory&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;&lt;a href="https://t.me/totaljs"&gt;Join Total.js Telegram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://platform.totaljs.com/"&gt;Sign-in to Total.js Platform&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>node</category>
      <category>jsonschema</category>
      <category>ldap</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Customizable Node-red alternative</title>
      <dc:creator>Peter Širka</dc:creator>
      <pubDate>Wed, 07 Apr 2021 22:31:16 +0000</pubDate>
      <link>https://dev.to/petersirka/customizable-node-red-alternative-3fpm</link>
      <guid>https://dev.to/petersirka/customizable-node-red-alternative-3fpm</guid>
      <description>&lt;p&gt;&lt;a href="https://www.totaljs.com/flow/" rel="noopener noreferrer"&gt;Total.js Flow&lt;/a&gt; is part of &lt;strong&gt;Total.js Platform&lt;/strong&gt; and it's direct alternative to Node-red without any dependencies. Total.js Flow is fully open-source under &lt;strong&gt;MIT license&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/flow/" rel="noopener noreferrer"&gt;Flow: Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.totaljs.com/flow/" rel="noopener noreferrer"&gt;Flow: Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/totaljs/flow/" rel="noopener noreferrer"&gt;GitHub: Flow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/totaljs/flowcomponents/" rel="noopener noreferrer"&gt;GitHub: Flow components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/totalframework" rel="noopener noreferrer"&gt;Total.js Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/totaljs/emptyproject-flow/" rel="noopener noreferrer"&gt;Download: Flow example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Beautify UI
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Total.js Flow&lt;/strong&gt; offers a beautiful and slick user interface with nice features like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time traffic indicator&lt;/li&gt;
&lt;li&gt;Real-time statistics&lt;/li&gt;
&lt;li&gt;Visual error handling&lt;/li&gt;
&lt;li&gt;Supports zooming&lt;/li&gt;
&lt;li&gt;Dark/Light theme&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftjlilw0ls4fo6k8w1axw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftjlilw0ls4fo6k8w1axw.gif" alt="Flow real-time traffic indicator"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4jvimgv5rbdtdnijchw4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4jvimgv5rbdtdnijchw4.gif" alt="Flow error handling"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  No 3rd party dependencies and with power saving
&lt;/h2&gt;

&lt;p&gt;The core of Total.js Flow is without any 3rd party dependencies, so the maintenance is effortless. You can provide Flow for several years without any problem on various devices. Total.js Flow doesn't limit you, and Flow components can contain any module from NPM. We create Total.js Flow from scratch, and we optimized it for saving CPU and memory consumption.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stability
&lt;/h2&gt;

&lt;p&gt;Total.js Flow is stable for several years, and the Total.js Flow is part of many great projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthy467iybvdgtz1vseak.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthy467iybvdgtz1vseak.jpg" alt="Flow stability"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2f2ny6hwlzkgoozo1cp6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2f2ny6hwlzkgoozo1cp6.gif" alt="Google Home in Total.js Flow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Works offline
&lt;/h2&gt;

&lt;p&gt;Total.js Flow is fully optimized for working offline without any internet connection. So you can provide Total.js Flow directly for example in IoT devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Crash mode
&lt;/h2&gt;

&lt;p&gt;Total.js Flow supports crash mode or pausing of the entire designed Flow just in time. The crash mode will ensure that after crashing, the instance will automatically pause the Flow due to analyses of all problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Launch modes
&lt;/h2&gt;

&lt;p&gt;Total.js Flow supports three types of Flow modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;bundle&lt;/code&gt; (default) launches UI designer and backend Flow services&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;client&lt;/code&gt; runs only UI designer, but you need to specify URL address for backend Flow services (UI designer will connect external server)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;server&lt;/code&gt; runs only backend Flow services without UI designer&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Amazing performance
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Total.js Flow&lt;/strong&gt; offers excellent performance that can handle hundreds of requests per second.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/1adE_nQOq50"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Many useful components
&lt;/h2&gt;

&lt;p&gt;We have prepared a lot of functional components. You can easily install existing components or create your own. You can easily change the default behavior of &lt;strong&gt;Total.js Flow&lt;/strong&gt; by adding your link to templates with the &lt;a href="https://github.com/totaljs/flowcomponents" rel="noopener noreferrer"&gt;Flow components&lt;/a&gt; or templates with predefined Flow designs. You can change the default configuration anytime.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating components
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/totaljs/flowcomponents" rel="noopener noreferrer"&gt;GitHub repository: Flow components&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We have prepared a tool for creating Flow components. You can create Flow components without Flow, our test tool simulates Flow, and you can quickly test component functionality. Clone the repository above and learn from existing Flow components, you can start with &lt;code&gt;tutorial&lt;/code&gt; component.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tutorials
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/results?search_query=Total.js+Flow+tutorials" rel="noopener noreferrer"&gt;Video tutorials on YouTube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.totaljs.com/tutorials/?q=flow" rel="noopener noreferrer"&gt;Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Customization
&lt;/h2&gt;

&lt;p&gt;We have prepared a particular version of Flow called Total.js FlowStream which can be fully customized/optimized for various cases. You can provide FlowStream in Cluster or Cloud, and it can be optimized for accessing of multiple users (with possibility to implement various permissions) and much more.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/totaljs/flowstream/" rel="noopener noreferrer"&gt;FlowStream example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzry65c154461zim5k15.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzry65c154461zim5k15.png" alt="Total.js FlowStream"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Try Total.js Flow in Cloud
&lt;/h2&gt;

&lt;p&gt;Start with &lt;a href="https://www.totaljs.com/flow/" rel="noopener noreferrer"&gt;Total.js Flow&lt;/a&gt; in &lt;a href="https://www.totaljs.com/cloud/" rel="noopener noreferrer"&gt;Total.js Cloud&lt;/a&gt; in two minutes:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ppL8FfFmvVY"&gt;
&lt;/iframe&gt;
 &lt;/p&gt;

&lt;h2&gt;
  
  
  Great support
&lt;/h2&gt;

&lt;p&gt;Join &lt;a href="https://t.me/totaljs" rel="noopener noreferrer"&gt;Total.js Telegram&lt;/a&gt; or write us on &lt;a href="https://platform.totaljs.com" rel="noopener noreferrer"&gt;Total.js Messenger&lt;/a&gt;. We are ready to help you with the development or customizing of apps with the Total.js Flow. Our company offers &lt;a href="https://www.totaljs.com/support/" rel="noopener noreferrer"&gt;professional support services for companies&lt;/a&gt;.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/flow/" rel="noopener noreferrer"&gt;Flow: Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.totaljs.com/flow/" rel="noopener noreferrer"&gt;Flow: Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/totaljs/flow/" rel="noopener noreferrer"&gt;GitHub: Flow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/totaljs/flowcomponents/" rel="noopener noreferrer"&gt;GitHub: Flow components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/totalframework" rel="noopener noreferrer"&gt;Total.js Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/totaljs/emptyproject-flow/" rel="noopener noreferrer"&gt;Download: Flow example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>nodered</category>
      <category>iot</category>
      <category>node</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Open-source JavaScript platform</title>
      <dc:creator>Peter Širka</dc:creator>
      <pubDate>Sat, 23 Jan 2021 19:36:17 +0000</pubDate>
      <link>https://dev.to/petersirka/open-source-javascript-platform-1cfg</link>
      <guid>https://dev.to/petersirka/open-source-javascript-platform-1cfg</guid>
      <description>&lt;p&gt;&lt;strong&gt;Total.js Platform&lt;/strong&gt; is a collection of libraries, packages, UI components, practices, and complete products written in pure JavaScript / Node.js. Most of our libraries and UI components are without any 3rd party dependencies. Total.js Platform is a proven and stable platform for various cases like web apps, REST services, E-commerce, intranet apps, hybrid mobile apps, and real-time apps.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Total.js Platform offers you&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rapid and powerful development of web apps&lt;/li&gt;
&lt;li&gt;High performance&lt;/li&gt;
&lt;li&gt;Fully scalable&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.totaljs.com/framework/"&gt;Node.js server-side framework&lt;/a&gt; called Total.js without dependencies and with significant functionality&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.totaljs.com/jcomponent/"&gt;Client-side library&lt;/a&gt; for creating SPA and reusable UI components&lt;/li&gt;
&lt;li&gt;More than &lt;a href="https://componentator.com"&gt;230 free and reusable UI components&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Clean and beautiful &lt;a href="https://docs.totaljs.com"&gt;documentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://platform.totaljs.com"&gt;Live chat support&lt;/a&gt; with authors and contributors (or on &lt;a href="https://t.me/totaljs"&gt;Total.js Telegram&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/cloud/"&gt;Cloud development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/appbuilder/"&gt;Visual programming interface for the building of server-side apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/flow/"&gt;Visual programming interface for IoT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.totaljs.com/superamdin/"&gt;Attractive Node.js Process Manager Node.js Process Manager&lt;/a&gt; tool with monitoring and auto-generating of SSL&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/code/"&gt;Cloud Code editor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/cms/"&gt;Node.js CMS with an embedded database and zero configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.totaljs.com/openplatform/"&gt;Intranet platform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A lot of resources&lt;/li&gt;
&lt;li&gt;Total.js Platform is a free and open-source&lt;/li&gt;
&lt;li&gt;You won't need any external tools for web development&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Website: &lt;a href="https://www.totaljs.com"&gt;https://www.totaljs.com&lt;/a&gt;&lt;br&gt;
Do you have any questions? &lt;a href="https://t.me/totaljs"&gt;Join to community&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Gc2tStqKtBA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.totaljs.com/posts/506916001sr61b/"&gt;Start to develop in two minutes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Sneak peek
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9e8pUAGU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/u2562ss22prh3ztc5sd5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9e8pUAGU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/u2562ss22prh3ztc5sd5.jpg" alt="Total.js apps"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
