Prism

Lightweight, extensible syntax highlighting for the web and Node.js, with support for 300+ languages.

Library
npm
v1.30.0
13,051 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
83 /100 Excellent
Development Activity 88
Maintenance 68
Community 76
Maturity 60
Momentum 40

Technical Analysis

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

Prism is a lightweight, robust, and elegant syntax highlighting library for the web. It tokenizes source code against grammar definitions and wraps each token in semantic markup, letting you style code with CSS themes rather than inline styles. Prism ships with definitions for hundreds of languages and a rich plugin ecosystem covering line numbers, copy-to-clipboard, autoloading, diff highlighting, and more.

Originally spun off from Lea Verou’s Dabblet, Prism runs in almost any browser and in Node.js. Its extensible, hook-based design lets you add languages, patch existing grammars, and hook into the highlighting lifecycle, which is why it powers documentation sites, blogs, and static site generators across the ecosystem.

What You Get

  • A tiny core tokenizer with grammar definitions for 300+ programming languages
  • A theme system driven entirely by CSS, with many bundled and community themes
  • A plugin ecosystem: line numbers, copy-to-clipboard, autoloader, diff highlighting, and more
  • First-class support for both browsers and Node.js via ESM and CommonJS builds
  • TypeScript type definitions and an extensible, hook-based highlighting lifecycle

Common Use Cases

  • Highlighting fenced code blocks on documentation sites and technical blogs
  • Rendering syntax-highlighted snippets in static site generators at build time
  • Displaying read-only code samples inside web apps and component libraries
  • Adding language-aware highlighting to Markdown/MDX pipelines

Under The Hood

Architecture - Prism’s core (src/core/) is a small tokenizer: tokenize/tokenize.js walks source text against a grammar object of named regex patterns, producing a doubly linked-list.js token stream that stringify.js renders into nested <span> markup with token-type classes. A registry.js manages language components by id, resolving aliases and lazily loading grammars so hundreds of languages need not all be present. highlight.js, highlight-element.js, and highlight-all.js are the public entry points, with auto-start.js wiring up automatic highlighting of the page. A hook system lets plugins observe and mutate the highlighting lifecycle. Tech Stack - Pure JavaScript authored as ESM in src/, with a custom scripts/build.js producing both the ESM (dist/) and CommonJS (dist/cjs/) builds plus generated TypeScript declarations (types/). It has zero runtime dependencies, targets Node.js >=18, and uses ESLint and Prettier for consistency. Code Quality - The repo carries 27 Mocha test files under tests/ covering the core, individual language definitions, plugins, regex patterns, and identifiers, alongside tsc typechecking of both source and tests. Source is thoroughly JSDoc-annotated (the Registry class documents every field and method), and a dedicated SECURITY.md describes how the maintainers triage ReDoS reports inherent to a regex-based highlighter. API Design - The public surface is deliberately minimal and ergonomic: Prism.highlight(code, grammar, language) for strings, highlightElement/highlightAll for the DOM, and declarative grammar objects plus a hook API for extension. Language grammars can be patched or extended without forking, and the extensive prismjs.com documentation and examples/ folder keep the getting-started boilerplate near zero.

Used by 42 apps in this directory

TypeScript
99%
Apache 2.0

Trigger.dev

AI Development · Automation · Developer Tools

16,606

Build and deploy fully-managed AI agents and background jobs in TypeScript — with no timeouts, durable retries, real-time observability, and elastic scaling built in.

View details
90
Repo Health
9
Technical
63
Dependency
Built with
TypeScript 99%
Updated 1 weeks ago
JavaScript
56%
MIT

Uptime Kuma

Monitoring

92,816

Self-hosted monitoring for every service you run — 23 monitor types, 95 notification channels, live dashboards, and public status pages with no vendor lock-in.

View details
92
Repo Health
81
Technical
62
Dependency
Built with
JavaScript 56%
Vue 41%
Updated 1 weeks ago
Go
54%
AGPL 3.0

Uptrace

Devops · Monitoring

4,305

Unified open-source APM that collects OpenTelemetry traces, metrics, and logs into a single self-hosted platform backed by ClickHouse.

View details
71
Repo Health
70
Technical
65
Dependency
Built with
Go 54%
Vue 34%
Updated 1 weeks ago
Python
92%
GPL 3.0

Weblate

Developer Tools

6,124

Continuous localization platform that commits translations directly into your version control system with full translator attribution.

View details
95
Repo Health
86
Technical
67
Dependency
Built with
Python 92%
Updated 1 weeks ago
TypeScript
41%
AGPL 3.0

Wiki.js

Collaboration · Knowledge Management

29,081

A modern, self-hosted wiki platform built on Node.js with a rich plugin ecosystem for authentication, search, storage, and rendering that adapts to any team's infrastructure.

View details
95
Repo Health
67
Technical
60
Dependency
Built with
TypeScript 41%
Vue 39%
JavaScript 16%
Updated 1 weeks ago
TypeScript
96%
GPL 3.0

Wire

Collaboration · Team Chat · Video Conferencing

1,192

Open source end-to-end encrypted messaging for teams and enterprises — self-host for complete control over your communications and data.

View details
93
Repo Health
8
Technical
68
Dependency
Built with
TypeScript 96%
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