Features
- Configuration-centric API design
- Built-in authentication and authorization
- Input validation with Joi schema library
- Plugin system for modular architecture
Pros
- Battle-tested at Walmart scale (Black Friday traffic)
- Comprehensive built-in security features
- Excellent for enterprise API development
Cons
- Declining community activity and adoption
- Heavier configuration compared to Express or Fastify
- Fewer modern tutorials and learning resources
Overview
Hapi (originally created at Walmart Labs) is a configuration-driven framework for building APIs and web services. Unlike Express’s middleware pattern, Hapi uses a plugin-based architecture where functionality is added through configuration objects rather than middleware chains.
Hapi includes built-in support for input validation (via Joi), authentication, authorization, caching, and cookie management. Its configuration-centric approach makes it particularly well-suited for large teams that need consistent, predictable API behavior.
When to Use
Hapi is appropriate for enterprise environments that value configuration-driven architecture and built-in security features. For new projects, Fastify offers similar structure with better performance and more active development.
Getting Started
npm init -y && npm install @hapi/hapi
import Hapi from "@hapi/hapi";
const server = Hapi.server({ port: 3000 });
server.route({
method: "GET",
path: "/",
handler: () => ({ message: "Hello from Hapi" }),
});
await server.start();