Constrói mais rápido. Fica dono do teu stack.
Software de negócio sem camadas desnecessárias.
O Total.js combina um framework Node.js rápido, componentes de UI prontos para produção e aplicações comprovadas, para que as equipas possam criar dashboards, portais, produtos SaaS e ferramentas internas com menos código de integração e mais controlo.
Routing, ações, REST, WebSocket, esquemas, ficheiros, views, e‑mail e controlo em runtime, tudo no mesmo sítio.
Campos de entrada, datagrids, formulários, gráficos, dashboards, modais e interfaces prontas para produção.
Um stack que podes compreender, estender e sentir como teu
O Total.js mantém as peças importantes juntas: backend, UI, dados, comunicação em tempo real e lógica de negócio, sem espalhar o produto por camadas desnecessárias.
Um backend. Uma filosofia de UI.
Rotas, ações, esquemas, views, bindings e componentes encaixam naturalmente. Menos código de integração, menos decisões e um caminho mais limpo da ideia à produção.
Framework puro
total5 / node.jsUma estrutura clara para lógica de negócio, APIs, sockets, jobs e processos reais, sem ruído de framework.
// Rotas, esquemas, base de dados, correio, TMS, ficheiros, tarefas e 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, 'Encomenda recebida', 'mail/order', doc, NOOP);
$.success(doc);
});
}
});
NEWACTION('Orders|sync', {
action: function($) {
// As tarefas em segundo plano utilizam o mesmo pipeline de ações
$.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();UI com jComponents
spa.min@20Cria formulários, dashboards, tabelas e fluxos de trabalho completos com componentes pensados para ecrãs de negócio reais.
<!-- Biblioteca de UI no cliente com estado com âmbito e componentes -->
<script src="https://cdn.componentator.com/spa.min@20.js"></script>
<link rel="stylesheet" href="https://cdn.componentator.com/spa.min@20.css" />
<!-- UI multilingue pronta a usar: @(Orders), @(Save order), @(Customer) -->
<ui-plugin path="orders">
<ui-component name="input" path="?.filter.q" config="placeholder:Procurar encomendas;autofill:1"></ui-component>
<ui-component name="validate" path="?.form">
<button class="exec" data-exec="?/save">Guardar encomenda</button>
</ui-component>
<ui-component name="datagrid" path="?.orders" config="margin:0;click:?/detail">
<script type="text/plain">
[
{ name: 'email', text: 'Cliente', width: 220 },
{ name: 'total', text: 'Total', align: 2, template: "{{ total | format(2) }}" },
{ name: 'dtcreated', text: 'Criado', 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', 'Encomenda guardada');
});
};
exports.websocket = function(message) {
PUSH('?.orders', message);
EMIT('orders/live', message);
};
});
</script>Produtos reais, uma única base
O Flow, o OpenPlatform, o CMS e as outras aplicações Total.js não são demos. São produtos reais, construídos sobre a mesma base que pode usar na sua própria plataforma.
Flow
Automação, integrações e processos de negócio ligados a APIs, serviços e IA.
OpenPlatform
Uma base de portal privado com identidades, aplicações, utilizadores e acesso controlado.
CMS
Gestão de conteúdos que pode funcionar sozinha ou integrar-se numa solução de negócio maior.
Code
Editor de código Web colaborativo para desenvolvimento em Total.js, a correr diretamente no seu próprio servidor para alterações mais rápidas e controlo total.
UI Builder
Criação visual de interfaces para painéis, portais, formulários e ecrãs de negócio.
Todomator
Gestão de tarefas para equipas que precisam de prioridades claras, execução e foco operacional diário.
Tables
Área de trabalho sem código para PostgreSQL, para desenhar tabelas, ligar dados e gerir registos com vistas personalizadas.
Mais apps
Ferramentas construídas com a mesma filosofia: práticas, diretas e prontas para trabalho real.
Lance mais cedo.
Cresça com confiança.
Uma base mais rápida significa ciclos de entrega mais curtos, menores custos de manutenção e software empresarial que pode continuar a crescer sem ter de reconstruir tudo.
TotalDesktop Suite
Ferramentas nativas para macOS e iPadOS, concebidas à volta de fluxos de trabalho reais com Total.js: recursos, código, monitorização, projetos e trabalho diário.

TotalResources
Gere conteúdos multilingues a partir de uma app nativa: tradução, ajuda ortográfica, revisão e apoio de IA para cada texto de produto.

TotalCode
Um workspace nativo para Total.js Code, com controlo local e várias instâncias a partir de uma única aplicação.

TotalMonitor
Monitoriza a saúde do projeto, métricas, alertas e regras em tempo real, para que os problemas fiquem visíveis antes de se tornarem urgentes.

Mais aplicações
Mais ferramentas nativas vão estender o mesmo ecossistema para desenvolvimento, gestão, monitorização e evolução do produto.
Exclusivo para macOS e iPadOS, em breve
O primeiro lançamento será focado no ecossistema Apple. Windows e Linux chegarão mais tarde, ainda sem data definida.
Na Total.js criamos software que perdura.
Aplicações à medida, dashboards, portais, produtos SaaS e plataformas privadas construídos sobre uma base coerente, em vez de complexidade acidental.
Desenvolvimento à medida
Aplicações, dashboards, portais, ferramentas internas e produtos digitais construídos com Total.js.
Arquitetura e consultoria
Decisões técnicas, revisão da base e um plano prático antes de o produto crescer.
Implementação e evolução
Da primeira versão à melhoria contínua, com a mesma direção técnica.
Manutenção e melhoria
Otimização, refactor, novas funcionalidades e evolução progressiva de plataformas existentes.
Transformamos necessidades de negócio em software real
Desenhamos e construímos aplicações com uma base técnica clara e um caminho prático até à produção.
Equipas em todo o mundo já constroem com Total.js.
Ver todas as referências





Partilhe o seu caso connosco. Vamos analisá-lo com atenção e responder rapidamente com uma resposta clara.