helmet

Secure Node and Express apps by setting protective HTTP response headers with a single line of middleware.

Library
npm
v8.3.0
10,738 stars
MIT License

Repository Health

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

Technical Analysis

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

Helmet is a collection of Express middleware functions that set security-related HTTP response headers to help protect your app from a range of well-known web vulnerabilities. Calling helmet() applies sensible defaults for roughly a dozen headers, including Content-Security-Policy, Strict-Transport-Security, X-Content-Type-Options, and Cross-Origin-Resource-Policy.

Each header is implemented as its own standalone middleware, so you can enable the full bundle, disable individual headers, or fine-tune any of them with header-specific options. Helmet aims to be quick to integrate and low maintenance afterward, making it a common baseline for hardening Node.js web servers.

What You Get

  • A one-line helmet() middleware that sets around a dozen protective HTTP response headers with sensible defaults.
  • Individually configurable headers, each of which can be disabled or tuned via a dedicated options object.
  • Standalone middleware exports (e.g. helmet.contentSecurityPolicy()) so you can apply a single header on its own.
  • First-class TypeScript types for every header’s options, with descriptive runtime errors for misconfiguration.

Common Use Cases

  • Hardening an Express API or web app against common attacks by applying a security-header baseline.
  • Defining and enforcing a Content-Security-Policy to mitigate cross-site scripting and injection.
  • Enforcing HTTPS with Strict-Transport-Security (HSTS) across a domain and its subdomains.
  • Controlling cross-origin resource, opener, and embedder behavior for process isolation and resource protection.

Under The Hood

Architecture — Helmet is organized as a thin composition layer over a set of independent middleware modules. The middlewares/ directory holds one folder per header (content-security-policy, strict-transport-security, referrer-policy, cross-origin-*, x-frame-options, and so on), each exporting a default middleware factory plus its own options type. The root index.ts imports every factory, defines a combined HelmetOptions type that maps each key to either the header’s options or a boolean, and returns a single middleware that instantiates the enabled sub-middlewares once at startup and invokes them per request. Legacy aliases (e.g. hsts, frameguard, noSniff) are supported through a TypeScript EitherKey helper that prevents passing both the modern and legacy name at once.

Tech Stack — The library is written in TypeScript (95% of the codebase) targeting Node.js >=18 and ships as an ES module with no runtime dependencies. The build is driven by a custom build/build-package.ts script run through tsx on top of Rollup with @rollup/plugin-typescript and rollup-plugin-dts to emit JavaScript plus bundled type declarations. Tooling includes ESLint (typescript-eslint), Prettier, and tsc --noEmit for type checking.

Code Quality — Test coverage is thorough: the test/ directory contains a dedicated .test.ts suite per middleware plus an aggregate index.test.ts, run with Node’s built-in test runner via tsx --test and supertest for HTTP assertions. Individual middlewares perform careful input validation, throwing clear, actionable error messages for common mistakes (for example, catching the maxage vs maxAge and includeSubdomains vs includeSubDomains casing errors in the HSTS middleware). Strict typing and consistent naming run throughout.

API Design — The public API is deliberately minimal and ergonomic: app.use(helmet()) is enough to get a strong default posture, and every header can be turned off with false or customized with a typed options object using either camelCase or kebab-case directive keys. Each header is also exposed as a standalone middleware for granular use. Documentation is excellent, with a detailed README covering every header, an official docs site, and an FAQ.

Used by 32 apps in this directory

TypeScript
99%
AGPL 3.0

Pangolin

Networking

23,187

An open-source, identity-based zero-trust remote access platform built on WireGuard — a self-hostable alternative to Cloudflare Tunnel and Twingate with SSO, OIDC, and tunneled reverse proxying.

View details
87
Repo Health
68
Technical
68
Dependency
Built with
TypeScript 99%
Updated 1 weeks ago
TypeScript
91%
AGPL 3.0

PeerTube

Social Media

15,362

A federated, ActivityPub-based video hosting platform built by Framasoft — self-hostable instances interconnect into a network with no vendor lock-in, P2P-assisted streaming, and no ads.

View details
96
Repo Health
75
Technical
66
Dependency
Built with
TypeScript 91%
Updated 2 weeks ago
TypeScript
67%
AGPL 3.0

Plane

Collaboration · Productivity · Project Management

61,353

Open-source project management platform to replace Jira, Linear, and ClickUp — with built-in cycles, real-time collaborative docs, and full self-hosting.

View details
92
Repo Health
82
Technical
77
Dependency
Built with
TypeScript 67%
Python 30%
Updated 1 weeks ago
TypeScript
64%
AGPL 3.0

Puter

Developer Tools · File Storage

43,864

A self-hostable, web-based internet OS with desktop GUI, cloud storage, AI drivers, and a developer SDK — all running in your browser.

View details
88
Repo Health
88
Technical
67
Dependency
Built with
TypeScript 64%
JavaScript 33%
Updated 6 days ago
TypeScript
96%
Other

Refly

AI Development · Automation · No Code Platforms

7,537

Build deterministic, versioned agent skills from natural language—run them anywhere from Claude Code to Slack.

View details
68
Repo Health
76
Technical
63
Dependency
Built with
TypeScript 96%
Updated 1 weeks ago
JavaScript
86%
AGPL 3.0

SillyTavern

AI Assistants

34,869

The power-user LLM frontend that unifies dozens of AI backends with a rich scripting engine, immersive Visual Novel mode, and a thriving extension ecosystem.

View details
88
Repo Health
71
Technical
63
Dependency
Built with
JavaScript 86%
Updated 4 weeks ago
TypeScript
89%
Other

strapi

CMS

73,368

Open-source headless CMS that auto-generates REST and GraphQL APIs from your content models, with a fully customizable admin panel you control.

View details
93
Repo Health
84
Technical
63
Dependency
Built with
TypeScript 89%
JavaScript 11%
Updated 1 weeks ago
TypeScript
67%
Other

TaskView

Productivity · Project Management

1,367

Self-hosted project and task management platform for software teams, with Kanban boards, sprints, time tracking, GitHub/GitLab integrations, and an MCP server for AI assistants.

View details
78
Repo Health
77
Technical
68
Dependency
Built with
TypeScript 67%
Vue 21%
Updated 1 weeks ago
TypeScript
99%
Other

Teable

Databases · No Code Platforms

21,920

A no-code PostgreSQL database with spreadsheet UX, real-time collaboration, and native AI agents — built for teams that outgrow Airtable.

View details
78
Repo Health
76
Technical
62
Dependency
Built with
TypeScript 99%
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