StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Product

  • Stacks
  • Tools
  • Companies
  • Feed

Company

  • About
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2025 StackShare. All rights reserved.

API StatusChangelog
hapi
Byhapihapi

hapi

#10in Microframeworks
Discussions5
Followers456
OverviewDiscussions5

What is hapi?

hapi is a simple to use configuration-centric framework with built-in support for input validation, caching, authentication, and other essential facilities for building web applications and services.

hapi is a tool in the Microframeworks category of a tech stack.

hapi Pros & Cons

Pros of hapi

  • ✓Makes me Hapi making REST APIs
  • ✓Configuration
  • ✓Simpler than other REST libraries
  • ✓Modularization
  • ✓Quality Driven Ecosystem
  • ✓Easy testability
  • ✓Better validation
  • ✓Restify

Cons of hapi

No cons listed yet.

hapi Alternatives & Comparisons

What are some alternatives to hapi?

ExpressJS

ExpressJS

Express is a minimal and flexible node.js web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.

Flask

Flask

Flask is intended for getting started very quickly and was developed with best intentions in mind.

Django REST framework

Django REST framework

It is a powerful and flexible toolkit that makes it easy to build Web APIs.

FastAPI

FastAPI

It is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints.

Sinatra

Sinatra

Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.

Koa

Koa

Koa aims to be a smaller, more expressive, and more robust foundation for web applications and APIs. Through leveraging generators Koa allows you to ditch callbacks and greatly increase error-handling. Koa does not bundle any middleware.

hapi Integrations

Node.js, rest-hapi, Airbrake, Trails, tsoa and 2 more are some of the popular tools that integrate with hapi. Here's a list of all 7 tools that integrate with hapi.

Node.js
Node.js
rest-hapi
rest-hapi
Airbrake
Airbrake
Trails
Trails
tsoa
tsoa
Defer
Defer
htmx
htmx

hapi Discussions

Discover why developers choose hapi. Read real-world technical decisions and stack choices from the StackShare community.

Teo Deleanu
Teo Deleanu

Developer at AppSeed

May 20, 2019

Needs adviceonReactReactNode.jsNode.jsDockerDocker

What is the best way to increase your income as a freelancer in 2019? What frameworks should be the best to learn? React Node.js Docker Kubernetes Sequelize Mongoose MongoDB ExpressJS hapi Based on trends I've picked up a JS full stack. If you need to work under startups you may replace React with Vue.js . If you want to work in outsourcing Angular+ may be better.

What is your opinion?

0 views0
Comments
Tim Nolet
Tim Nolet

CTO at Checkly Inc.

Apr 29, 2019

Needs adviceonJavaScriptJavaScriptNode.jsNode.jshapihapi

JavaScript Node.js hapi Vue.js Swagger UI Slate

Two weeks ago we released the public API for Checkly. We already had an API that was serving our frontend Vue.js app. We decided to create an new set of API endpoints and not reuse the already existing one. The blog post linked below details what parts we needed to refactor, what parts we added and how we handled generating API documentation. More specifically, the post dives into:

  • Refactoring the existing Hapi.js based API
  • API key based authentication
  • Refactoring models with Objection.js
  • Validating plan limits
  • Generating Swagger & Slate based documentation
0 views0
Comments
Tim Nolet
Tim Nolet

CTO at Checkly Inc.

Mar 26, 2019

Needs adviceonNode.jsNode.jsVue.jsVue.jsJavaScriptJavaScript

Node.js Vue.js JavaScript hapi PostgreSQL A pretty basic question for any SaaS is how you deal with what a user can do on their account in a SaaS app? Can Jane on the "Starter" plan create another widget when she is near the limit of her plan? What if she's a trial user?

When building Checkly, I found it pretty hard to find good, solid examples on how to implement this. Specifically for my stack of Vue.js and Node.js / hapi

Turns out this is a mix of things:

  • Feature toggling
  • Counting stuff™
  • Custom API middleware very specific to your situation

Read my post on how we did this and where the bottlenecks are. The HackerNews thread on this has some great contributions too.

0 views0
Comments
Tim Nolet
Tim Nolet

CTO at Checkly Inc.

Mar 1, 2019

Needs adviceonHerokuHerokuDockerDockerGitHubGitHub

Heroku Docker GitHub Node.js hapi Vue.js AWS Lambda Amazon S3 PostgreSQL Knex.js Checkly is a fairly young company and we're still working hard to find the correct mix of product features, price and audience.

We are focussed on tech B2B, but I always wanted to serve solo developers too. So I decided to make a $7 plan.

Why $7? Simply put, it seems to be a sweet spot for tech companies: Heroku, Docker, Github, Appoptics (Librato) all offer $7 plans. They must have done a ton of research into this, so why not piggy back that and try it out.

Enough biz talk, onto tech. The challenges were:

  • Slice of a portion of the functionality so a $7 plan is still profitable. We call this the "plan limits"
  • Update API and back end services to handle and enforce plan limits.
  • Update the UI to kindly state plan limits are in effect on some part of the UI.
  • Update the pricing page to reflect all changes.
  • Keep the actual processing backend, storage and API's as untouched as possible.

In essence, we went from strictly volume based pricing to value based pricing. Here come the technical steps & decisions we made to get there.

  1. We updated our @{PostgreSQL}|tool:1028| schema so plans now have an array of "features". These are string constants that represent feature toggles.
  2. The @{Vue.js}|tool:3837| frontend reads these from the @{vuex}|tool:6705| store on login.
  3. Based on these values, the UI has simple v-if statements to either just show the feature or show a friendly "please upgrade" button.
  4. The @{hapi}|tool:1166| API has a hook on each relevant API endpoint that checks whether a user's plan has the feature enabled, or not.

Side note: We offer 10 SMS messages per month on the developer plan. However, we were not actually counting how many people were sending. We had to update our alerting daemon (that runs on Heroku and triggers SMS messages via AWS SNS) to actually bump a counter.

What we build is basically feature-toggling based on plan features. It is very extensible for future additions. Our scheduling and storage backend that actually runs users' monitoring requests (AWS Lambda) and stores the results (S3 and Postgres) has no knowledge of all of this and remained unchanged.

Hope this helps anyone building out their SaaS and is in a similar situation.

0 views0
Comments
Thibault Maekelbergh
Thibault Maekelbergh

Web Tech Lead

Aug 9, 2016

Needs adviceonhapihapi

Serves static content. Was added to make it more easy to transition to serverside view templating and API. hapi

0 views0
Comments

Try It

Visit Website

Adoption

On StackShare

Companies
86
LRHKSB+80
Developers
348
WMLRJJ+342