Mustache.js

Logic-less {{mustache}} templates for JavaScript, running anywhere JS runs.

Library
npm
v4.2.0
16,723 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
53 /100 Fair
Development Activity 0
Maintenance 20
Community 92
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
77 /100 Good
Architecture 75
Code Quality 78
Innovation 70
Learning Curve 85

Mustache.js is the JavaScript implementation of the language-agnostic Mustache templating system. It expands {{tag}} placeholders in a template string using values from a plain object or array, and deliberately has no if-statements, else-clauses, or loops beyond section blocks — templates stay declarative and portable across the many other Mustache implementations (Ruby, Python, PHP, Java, and more).

The library ships as a single dependency-free file with CommonJS, AMD, and ECMAScript module builds, plus a small CLI. It’s commonly used to render HTML fragments in the browser, generate server-side output in Node.js, or produce non-HTML text such as config files and emails from a shared data context.

What You Get

  • A zero-dependency Mustache.render(template, view, partials, tags) API with automatic HTML escaping and an overridable Mustache.escape function
  • Section tags ({{#section}}) for lists, booleans, and lambda-style function values, plus inverted sections ({{^section}}) for falsy/empty cases
  • Partial template support ({{> partial}}) that inherits the calling context, resolved at render time so recursive partials work
  • Custom delimiter syntax ({{=<% %>=}}) for templating non-HTML/non-mustache-conflicting formats
  • A bundled command-line tool (bin/mustache) for rendering templates outside of a JS program
  • CommonJS, AMD, and native ES module builds (mustache.js / mustache.mjs) plus a minified browser build

Common Use Cases

  • Rendering HTML fragments client-side from JSON data without pulling in a full frontend framework
  • Generating server-rendered HTML, emails, or CLI output in Node.js from a shared template language
  • Sharing one template format across a polyglot stack, since Mustache implementations exist for most languages
  • Producing non-HTML text artifacts — config files, source code stubs, or plain-text reports — from a data context

Under The Hood

Architecture — The library is organized as a small pipeline in a single file (mustache.js, ~760 lines): parseTemplate tokenizes a template string with regex-driven scanning via a Scanner object, nestTokens/squashTokens fold flat tokens into a nested tree for sections, a Context class implements the scope-chain lookup used to resolve {{tag}} values (falling back to parentContext when a key is missing locally, per line 375), and a Writer class (line 481) owns template parsing/caching plus the actual render/renderTokens walk that turns the token tree and a Context into output text. The module-level mustache object is a Writer instance, so Mustache.render is really Writer.prototype.render.

Tech Stack — Plain ES5-compatible JavaScript with no runtime dependencies at all (package.json lists zero dependencies); devDependencies are limited to its own build/test tooling (mocha, chai, eslint, rollup, uglify-js, zuul for browser tests). The exports map in package.json ships both a CommonJS (mustache.js) and an ES module (mustache.mjs) build built via rollup, alongside a minified mustache.min.js for direct browser use, and a small CLI entry at bin/mustache.

Code Quality — Tests live under test/ and are run with mocha (test-unit) plus a dedicated test-lint eslint pass; notably the suite pulls in the official cross-language mustache-spec test fixtures (test/mustache-spec-test.js, test/spec/) so the implementation is validated against the same conformance suite used by other Mustache ports, in addition to hand-written unit tests for context, parsing, scanning, partials, and rendering. Functions are small, single-purpose, and consistently documented with JSDoc-style comments explaining intent (e.g. the null-safe hasProperty/primitiveHasOwnProperty helpers).

API Design — The public surface is deliberately tiny: one primary function (Mustache.render(template, view, partials, tags)) covers the common case with zero configuration required, and power users can reach Mustache.parse/Writer for caching control or override Mustache.escape/Mustache.tags globally. This keeps boilerplate minimal — a single require('mustache') and one render() call is enough to get output — at the cost of a slightly older callback-free, non-chainable API style compared to newer templating libraries.

Used by 21 apps in this directory

Python
71%
MIT

Langflow

AI Agents · AI Development

155,973

Build, test, and deploy AI agents and RAG workflows visually with native API and MCP server export.

View details
90
Repo Health
85
Technical
64
Dependency
Built with
Python 71%
TypeScript 21%
Updated 5 days ago
TypeScript
78%
LGPL 3.0

Latitude

AI Agents · Monitoring

4,733

Open-source AI agent monitoring that catches what will break next before your users do.

View details
87
Repo Health
88
Technical
67
Dependency
Built with
TypeScript 78%
Python 11%
Rust 11%
Updated 6 days ago
JavaScript
55%
Other

Lokus

Knowledge Management · Note Taking

829

Local-first note-taking with graph view, canvas & AI plugins—your Markdown files, zero telemetry, blazing-fast Rust performance.

View details
75
Repo Health
75
Technical
64
Dependency
Built with
JavaScript 55%
HTML 21%
Rust 12%
Updated 2 months ago
Clojure
57%
Other

Metabase

Analytics

49,827

The open-source BI platform that lets anyone ask questions and build dashboards without writing SQL — with an embedded analytics SDK and AI-powered query assistant included.

View details
95
Repo Health
84
Technical
62
Dependency
Built with
Clojure 57%
TypeScript 38%
Updated 5 days ago
JavaScript
98%
Apache 2.0

Parse Server

Databases · Developer Tools

21,401

Self-hosted Backend-as-a-Service for Node.js with REST, GraphQL, real-time Live Query, cloud code, and pluggable adapters for any infrastructure.

View details
98
Repo Health
81
Technical
70
Dependency
Built with
JavaScript 98%
Updated 6 days ago
Clojure
73%
MPL 2.0

Penpot

Design Tools

61,563

Open-source design platform with GPU-accelerated canvas, native design tokens, and MCP-powered AI workflows for teams that ship fast.

View details
91
Repo Health
83
Technical
72
Dependency
Built with
Clojure 73%
Updated 6 days ago
Python
49%
Other

Arize Phoenix

Analytics · Devops · Monitoring

11,976

Open-source AI observability platform for tracing, evaluating, and debugging LLM applications with built-in intelligence and MCP support.

View details
92
Repo Health
88
Technical
67
Dependency
Built with
Python 49%
TypeScript 43%
Updated 5 days ago
TypeScript
51%
ZLIB

Portainer

Devops

38,707

A lightweight, open-source web UI that puts Docker, Kubernetes, and Podman management within reach of any team—no CLI expertise required.

View details
93
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 51%
Go 38%
Updated 6 days ago
Python
45%
Other

Redash

Analytics · Data Engineering

28,849

Redash lets anyone connect to 35+ SQL and NoSQL data sources, write a query in the browser, and turn the result into a shared dashboard — no separate BI suite required.

View details
91
Repo Health
74
Technical
61
Dependency
Built with
Python 45%
JavaScript 29%
TypeScript 19%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers