Open Source Framework

Kalenuxer

A Node.js-based website build system powering all Kalenux web products. Template includes, variable substitution, multilingual JSON data, incremental builds, and automated SSH deployment in a single pipeline.

CategoryBuild Framework
LanguageNode.js
LicenseOpen Source
Built forKalenux products
Live Products4
Language Targets15+
Build SpeedSub-second incremental

What is Kalenuxer?

Kalenuxer is the internal build system Kalenux uses to build, maintain, and deploy every web product. It was created because existing static site generators were either too opinionated for the kind of server-rendered Go template integration the projects needed, or too complex to keep lightweight for simple marketing and product pages. Kalenuxer sits between a static site generator and a custom build tool - it handles templating, asset processing, multilingual content, and deployment, but stays out of the way of the backend architecture.

The template system is built around two primitives: include directives (! include_name !) and variable substitution ({ variable_name }). HTML source files reference named templates which are injected at build time. Variables are resolved from per-language JSON data files, allowing the same HTML template to produce different output for each locale without duplicating markup. The build tracks file modification timestamps so only changed files are reprocessed on each run, making incremental builds fast even in large projects.

Every Kalenux web product - Kalenux, Whats Your IQ, File Converter Free, and QR & Barcode Tool - is built and deployed using Kalenuxer. It is not a framework designed for external distribution or broad adoption; it's a production tool built to solve specific real-world requirements and refined through years of operating actual products. The source is available on GitHub for those who want to study or adapt it.

What it does

Template include system

HTML source files use directives to pull in reusable template fragments at build time. Headers, footers, navigation, and cookie consent are written once and included everywhere. Changes to a template propagate across all pages on the next build.

Variable substitution

All user-facing strings, metadata, and configuration values are defined in JSON data files and referenced in templates as { variable_name }. This keeps HTML clean of hardcoded content and makes site-wide text changes a single-file edit.

Multilingual JSON data architecture

Each language gets its own JSON data file (en.json, de.json, etc.) with the same key structure. The build processes each language independently, producing a complete set of output files per locale. Fifteen-plus languages are supported without any change to the HTML templates.

Incremental builds

File modification timestamps are tracked in JSON store files under store/times/. On each build run, only files newer than their last-processed timestamp are rebuilt. CSS, JS, HTML templates, and content data are tracked independently so changing a stylesheet does not trigger an HTML rebuild.

CSS and JS processing

Stylesheets and scripts are minified, versioned with content hashes, and injected into HTML pages automatically. The asset manifest (datas/html.json) maps logical names to file paths, keeping HTML templates decoupled from physical file names.

Image optimisation

PNG, JPEG, and WebP images are processed and optimised during the build. Responsive image variants can be generated from source files.

Automated SSH/SCP deployment

Deploy scripts handle syncing the built dist/ directory to production servers over SSH/SCP. Three deploy modes - frontend (CSS/JS/HTML only, no restart), api (Go binary rebuild + Docker), and full (everything) - match the scope of what changed.

Go template integration

Server-rendered pages use Go's html/template package for dynamic content (article pages, user dashboards). Kalenuxer handles the static shell and asset pipeline; Go templates handle the dynamic inner content. Both parts of the system coexist cleanly.

How it's built

Kalenuxer is a Node.js CLI tool. The build pipeline runs as a sequence of async stages: plugins, icons, fonts, CSS, JS, images, HTML templates, HTML pages, API handler files, and deployment. Each stage reads source files, processes them, and writes output to the dist/ directory. The store/times/ directory holds JSON files tracking the last-processed timestamp per file, enabling incremental rebuilds.

CLINode.js 22, ESM modules, async pipeline
Template engineCustom include resolver + variable substitution engine
Asset pipelineCSS minification, JS minification, image optimisation, content hashing
i18nPer-language JSON data files, merged at build time
DeploySSH/SCP scripts, three deploy modes (frontend / api / full)

Technologies used

Runtime
Node.js 22ESM
Build tools
Gulp (icon fonts)Custom pipeline stages
Output
Static HTMLMinified CSS/JSOptimised images
Deployment
SSHSCPDocker integration

Guides

Getting Started

Prerequisites, project structure, your first build, and understanding the output directory.

How to Use

CLI reference, build modes, the -unsafe flag, forcing rebuilds, and the asset manifest format.

Template System

Include directives, template file resolution, URL mapping, and how pages and templates relate to each other.

Data & Variables

JSON data file structure, { variable } substitution, the Kalenuxer Framework - Kalenux directive, and asset injection syntax.

Multilingual

How Kalenuxer builds 15+ language variants from one template, output structure, adding a new language, and RTL support.

Deployment

The three deploy modes (frontend / api / full), SSH key setup, syncing dist to the server, and environment variables.

Want a custom build pipeline?

We can design and implement custom build and deployment systems tailored to your specific stack and workflow requirements.