Total.js for real business software

Build faster. Own the stack.

Business software without unnecessary layers.

Total.js combines a fast Node.js framework, production-ready UI components, and proven applications so teams can build dashboards, portals, SaaS products, and internal tools with less glue code and more control.

0dependencies
300+UI components
MITlicense
totaljs.es / software stack
Backend core

Routing, actions, REST, WebSocket, schemas, files, views, mail, and runtime control in one place.

jComponents

Inputs, datagrids, forms, charts, dashboards, modals, and production-ready interfaces.

# Node.js server-side framework
$ npm install total5

# Total.js CLI
$ npm install total5 -g
$ total5
# translate, minify, bundle, extract, edit
# proxyclient and instant local web server
Node.js
NoSQL
WebSocket
API/REST
Actions
Start with a solid foundation

A stack you can understand, extend, and own

Total.js keeps the important pieces close: backend, UI, data, real-time communication, and business logic without spreading your product across unnecessary layers.

Framework

A dependency-free Node.js foundation for APIs, sockets, admin panels, portals, internal apps, and long-term products.

  • Direct routing and clean actions
  • Schemas, validation, and data access
  • REST, WebSocket, mail, files, and views

jComponents

A UI layer designed for business applications: real components, simple binding, and screens that are ready to work without heavy front-end stacks.

  • Forms, datagrids, charts, and dashboards
  • Automatic bindings and lightweight views
  • More than 300 production components
Framework + jComponents

One backend. One UI philosophy.

Routes, actions, schemas, views, bindings, and components fit naturally together. Less glue code, fewer decisions, and a cleaner path from idea to production.

Pure framework

total5 / node.js

A clear structure for business logic, APIs, sockets, jobs, and real processes without framework noise.

framework.js
// Routes, schemas, database, mail, TMS, files, jobs, and sockets
require('total5');

exports.install = function() {
	ROUTE('GET /', 'view');
	ROUTE('+API ? orders-query      --> Orders|query');
	ROUTE('+POST /api/orders/      --> Orders|create');
	ROUTE('SOCKET /live/ @json <2MB', live);
	ROUTE('FILE /invoice/{id}/', invoice);
	ON('service', counter => counter % 5 === 0 && ACTION('Orders|sync').callback(NOOP));
};

NEWACTION('Orders|query', {
	query: 'page:Number, q:String',
	action: function($) {
		DATA.find('orders')
			.search('email', $.query.q)
			.paginate($.query.page || 1, 20)
			.sort('dtcreated_desc')
			.callback($);
	}
});

NEWACTION('Orders|create', {
	input: '*email:Email,*total:Number,items:[Object]',
	output: 'id:String,email:Email,total:Number,dtcreated:Date',
	publish: true,
	action: function($, model) {
		model.dtcreated = new Date();
		DATA.insert('orders', model).callback(function(err, doc) {
			if (err)
				return $.invalid(err);

			MAIL(model.email, 'Order received', 'mail/order', doc, NOOP);
			$.success(doc);
		});
	}
});

NEWACTION('Orders|sync', {
	action: function($) {
		// Background jobs use the same action pipeline
		$.success();
	}
});

function live($) {
	$.autodestroy();
	SUBSCRIBE('Orders|create', order => $.send(order));
	$.on('message', (client, message) => ACTION('Orders|create', message, client).callback(response => client.send(response)));
}

function invoice($) {
	FILESTORAGE('orders').read($.params.id, $.callback);
}

Total.run();
Intuitive routing
Reusable actions
Integrated WebSocket
NoSQL and schemas
MVC and serverless
Scalable and simple

UI with jComponents

spa.min@20

Build forms, dashboards, tables, and complete workflows with components made for real business screens.

ui.html
<!-- Client-side UI library with scoped state and components -->
<script src="https://cdn.componentator.com/spa.min@20.js"></script>
<link rel="stylesheet" href="https://cdn.componentator.com/spa.min@20.css" />

<!-- Multilingual UI out of the box: @(Orders), @(Save order), @(Customer) -->

<ui-plugin path="orders">
	<ui-component name="input" path="?.filter.q" config="placeholder:Search orders;autofill:1"></ui-component>

	<ui-component name="validate" path="?.form">
		<button class="exec" data-exec="?/save">Save order</button>
	</ui-component>

	<ui-component name="datagrid" path="?.orders" config="margin:0;click:?/detail">
		<script type="text/plain">
		[
			{ name: 'email', text: 'Customer', width: 220 },
			{ name: 'total', text: 'Total', align: 2, template: "{{ total | format(2) }}" },
			{ name: 'dtcreated', text: 'Created', template: "{{ dtcreated | format('dd.MM.yyyy') }}" }
		]
		</script>
	</ui-component>

	<ui-component name="linechart" path="?.sales" config="height:180;type:curves"></ui-component>

	<ui-bind path="?.online" config="text:value + ' online'"></ui-bind>
	<ui-bind path="?.order" config="template">
		<script type="text/html">{{ value.email }} · {{ value.total | format(2) }}</script>
	</ui-bind>
</ui-plugin>

<script>
PLUGIN('orders', function(exports) {
	exports.reload = function() {
		exports.tapi('Orders|query', exports.model.filter, function(response) {
			exports.set('?.orders', response);
		});
	};

	exports.save = function() {
		SETTER('loading/show');
		exports.tapi('Orders|create ERROR @showloading', exports.model.form, function(response) {
			SETTER('loading/hide');
			PUSH('?.orders', response);
			exports.set('?.form', {});
			SETTER('message/success', 'Order saved');
		});
	};

	exports.websocket = function(message) {
		PUSH('?.orders', message);
		EMIT('orders/live', message);
	};
});
</script>
300+ components
Datagrids and forms
Automatic bindings
Dashboards and charts
UI ready for business
Faster pages
Apps built on Total.js

Real products, one foundation

Flow, OpenPlatform, CMS, and other Total.js applications are not demos. They are working products built with the same foundation you can use for your own platform.

Flow

Automation, integrations, and business processes connected to APIs, services, and AI.

OpenPlatform

A private portal foundation with identity, applications, users, and controlled access.

CMS

Content management that can stand alone or become part of a larger business solution.

Code

Collaborative web code editor for Total.js development, running directly on your own server for faster changes and full control.

UI Builder

Visual interface building for dashboards, portals, forms, and business screens.

Todomator

Task management for teams that need clear priorities, execution, and daily operational focus.

Enterprise

Tables

A no-code PostgreSQL workspace for designing tables, connecting data, and managing records with custom views.

More apps

Tools built with the same philosophy: practical, direct, and ready for real work.

Performance for real products

Launch sooner.
Scale with confidence.

A faster foundation means shorter delivery cycles, lower maintenance costs, and business software that can keep growing without rebuilding everything.

Framework speed comparison
Total.js
100%
Fastify
90%
Koa
77%
Express
70%
NestJS
67%
Sails
60%
Meteor
55%
Hapi
50%
Connected native apps

TotalDesktop Suite

Native tools for macOS and iPadOS designed around real Total.js workflows: resources, code, monitoring, projects, and daily work.

TotalResources app icon

TotalResources

Manage multilingual content from a native app: translation, spelling assistance, review, and AI support for every product text.

Multilingual
Total.js API
Athena AI
MCP / MVP
TotalCode app icon

TotalCode

A native workspace for Total.js Code with local control and multiple instances from one application.

Native IDE
Multiple instances
MCP / MVP
TotalMonitor app icon

TotalMonitor

Monitor project health, metrics, alerts, and rules in real time so problems are visible before they become urgent.

Real-time
Alerts
MCP / MVP
More applications icon

More applications

More native tools will extend the same ecosystem for development, management, monitoring, and product evolution.

In progress
New apps
Ecosystem
Availability

Exclusively for macOS and iPadOS, coming soon

The initial release will be focused on the Apple ecosystem. Windows and Linux will arrive later, with no planned date yet.

macOS
iPadOS
App Store
Mac App Store
Professional development

At Total.js, we build software that lasts

Custom applications, dashboards, portals, SaaS products, and private platforms built on a coherent foundation instead of accidental complexity.

Internal applications
Private portals
Control panels
SaaS products
Refactor and improvement
Technical support

Custom development

Applications, dashboards, portals, internal tools, and digital products built with Total.js.

Architecture and consulting

Technical decisions, foundation review, and a practical plan before the product grows.

Implementation and evolution

From first version to continuous improvement, with the same technical direction.

Maintenance and improvement

Optimization, refactor, new features, and progressive evolution of existing platforms.

Spanish Total.js Platform

Tell us what your business needs to run better

We design and build Total.js applications with a clear technical foundation and a practical path to production.

Business applications and dashboards
Private platforms and portals
Architecture, implementation, and evolution

Teams around the world already build with Total.js.

View all references
Siemens
Orange
Datalan
Metrostav
Slovalco
Volkswagen
Tell us about your project

Tell us what you want to build and we’ll reply with a practical next step.