M+Minify++
Documentation

A small native minifier with a deliberately narrow contract.

Minify++ minifies final web artifacts. It does not compile TypeScript, bundle modules, execute build scripts or attempt to understand your framework. Give it HTML, CSS, JavaScript, JSX, JSON, XML or SVG; it produces a smaller artifact while trying very hard not to change meaning.

Core idea: source-language compilation belongs earlier in the build. Minify++ is an optional final-output optimisation stage.

The pipeline

TypeScript / Sass / templates / bundler
                  ↓
         final HTML/CSS/JS/etc.
                  ↓
                 Minify++
                  ↓
        smaller deployable files

Why a standalone tool?

Minify++ began as Nift's embedded minifier, but its job is useful independently. The standalone project has its own public C++ API, CLI, build and test suite. Nift embeds that same API rather than owning a private fork.

Start here

Getting started covers building and your first minification. Formats explains what Minify++ does and deliberately does not do for each syntax family. Architecture explains the conservative scanner design. Comparisons separates Minify++'s final-artifact role from specialist CSS/JavaScript/HTML tooling. Benchmarks separates regression throughput from cross-tool comparisons. Battle tested documents the evidence behind the safety claims. Memory & resource safety tracks the maintained leak and long-run soak campaign.

Safe defaults

The standalone CLI is non-destructive by default. minify app.js writes app.min.js; replacement requires --in-place. The same principle is used by Nift's convenience command.

Choose your entry point

Command line

Minify named files in scripts, release jobs and local workflows.

CLI reference →
C++ library

Embed whole-buffer transformation without inheriting file or project policy.

API reference →
Nift integration

Enable final-output minification by configured output extension.

Understand the boundary →

Support is a contract, not an extension list

Seven modes do not mean “all syntax that might appear in seven filename families”. Each format page explains what is parsed structurally, what is scanned lexically, what is preserved conservatively and what remains upstream. Read the production assessment before expanding a deployment claim beyond the validated environment.