Hapi.js
A configuration-centric Node.js framework for building APIs
js web framework that emphasizes configuration over code, built-in input validation, and a plugin system, originally developed at Walmart Labs to handle large-scale Black Friday traffic.
Definition
Hapi.js (often written hapi) is a Node.js web framework that emphasizes configuration over code, built-in input validation, and a plugin system, originally developed at Walmart Labs to handle large-scale Black Friday traffic.
Overview
Hapi was created by Eran Hammer at Walmart Labs in 2011 to replace Express in Walmart's mobile backend, driven by the need for a framework that scaled to enormous traffic spikes while remaining maintainable across many teams. Its guiding philosophy is 'configuration over code': rather than composing behavior primarily through middleware functions, hapi routes are defined as declarative configuration objects specifying the path, HTTP method, handler, and — critically — validation rules for inputs and outputs. Validation is a first-class citizen in hapi, historically powered by the `joi` schema validation library (now maintained as part of the hapi ecosystem alongside newer options). Every route can declare schemas for path parameters, query strings, payloads, and headers, and hapi will automatically reject malformed requests before they reach application code. This built-in validation, along with hapi's built-in support for caching, authentication strategies, and CORS, means many features that require third-party middleware in Express are available natively. Hapi's plugin system allows an application to be decomposed into self-contained units, each with its own routes, server methods, and dependencies, which then compose into a single server instance. This has made hapi historically popular for large enterprise codebases where consistent structure and strict input validation across many endpoints are priorities. While hapi does not have Express's ubiquity, it remains actively used in enterprise and government backends, and its validation-first, configuration-driven approach influenced how later frameworks (including Fastify) think about schema-based routing.
Key Features
- Configuration-driven route definitions instead of primarily middleware-chained logic
- Deep, built-in support for request/response validation via schema libraries
- Native authentication strategy support without requiring separate middleware
- Built-in caching abstraction for both server-side and client cache-control headers
- Plugin system for decomposing large applications into self-contained modules
- Originally built and battle-tested at Walmart Labs for extreme traffic events
- Rich ecosystem of official plugins (hapi-swagger, hapi-auth-jwt2, etc.)