Vibecode Wabery

track this build4 phases, 12 steps, beginner friendly
KINDA · weekend project
price $15/moyou'd save $180/yrbuild time multi-daycategory 🛠️ dev toolsreplaced by 0 people

The core loop (send, receive, verify webhooks, retry, inspect conversations) is one-shottable for a single business using Meta's WhatsApp Cloud API. What you cannot one-shot is the reason managed WhatsApp providers exist as products: production messaging infrastructure must stay reliable, secure, monitored, and compliant, while onboarding other businesses requires Meta business verification, app review, and approval for the relevant Tech Provider and Meta Business Partner capabilities. The honest DIY move is to build for your own verified WhatsApp Business Account and phone number; matching Wabery as a multi-tenant provider means operating that infrastructure and completing Meta's approval process.

the project pack5 files · written for this build, step by step
README.md
# Wabery · indie build

A gateway for one verified business number whose hard problems are inbound notifications that repeat, batch and arrive out of order, a messaging window that decides what you are allowed to send at all, and staying a single tenant because onboarding other businesses is an approval process rather than a feature.

Estimated effort: **multi-day**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| Runtime | Node 22 with Fastify behind a reverse proxy that holds the certificate | the webhook endpoint has to be publicly reachable and very fast to acknowledge |
| Storage | PostgreSQL, one schema, migrations checked into the repository | message history is what you will be asked to produce during an argument with a customer |
| Queue | A job table in the same PostgreSQL, claimed with a conditional update | one fewer service to lose, and the jobs need the same transaction as the rows they create |
| Inbound | Persist the raw body, acknowledge, then interpret from a worker | Meta retries a failed notification for well over a day and you cannot outrun that with fast parsing |
| Outbound | One send path that requires a caller-supplied idempotency key | a retried send is a second message on somebody else's phone, and it cannot be recalled |
| Tenancy | One business account, one phone number, one admin token, no signup | onboarding other businesses is Meta's verification and review process, not a flag you set |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **Node.js 22 or newer** · free
  - Why: Runs the gateway and the worker.
  - Get it: nodejs.org or your version manager.
  - Verify: node --version prints v22 or higher
- [ ] **PostgreSQL 16 or newer** · free locally; a few pounds a month managed
  - Why: Holds the raw events, the messages and the job table, which need to commit together.
  - Get it: Your package manager, or a small managed instance.
  - Verify: psql connects and the migrations apply cleanly
- [ ] **A Meta developer application with a WhatsApp Business Account and a verified phone number** · the platform charges per conversation; check the current published rates before you plan volume
  - Why: There is no sandbox that behaves like production here, and business verification is the gate that decides whether this project is possible at all.
  - Get it: Create the application, attach a business account, add and verify a number, and subscribe the webhook.
  - Verify: A test message from your own phone reaches the webhook endpoint
- [ ] **A publicly reachable HTTPS endpoint with a valid certificate** · a few pounds a month
  - Why: The webhook subscription will not verify without one, and a tunnel that dies overnight looks exactly like an outage.
  - Get it: A small always-on server with a reverse proxy, or a tunnel you accept will need restarting.
  - Verify: The subscription verification handshake succeeds from the platform console
- [ ] **Written confirmation that this serves one business only** · free
  - Why: Every design choice below assumes a single tenant, and discovering otherwise after launch means either a rewrite or holding other people's data without the approvals.
  - Get it: Write down the single phone number identifier this deployment serves and put it in the README.
  - Verify: The boot check refuses to start with any other configuration

## Quick start

Follow Phase 1 in `BUILD_PLAN.md`; it creates the project.

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- Onboarding other businesses or embedded signup.
- Unofficial bridges to the consumer client.
- Marketing broadcasts to numbers that never wrote to you.
- Flows, hosted functions and a team inbox.
- Meta Business Partner status and approved Tech Provider onboarding path
- turnkey onboarding for multiple customer businesses and phone numbers
- managed queues, retries, monitoring, security, and production reliability
- WhatsApp Flows builder, encryption, and data-exchange hosting
- hosted functions, MCP tooling, and a production team inbox

If one of those is essential to you, that is the reason to keep paying for Wabery, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

why people still pay

The REST endpoints are the easy part. Wabery packages Meta onboarding, secure multi-tenant infrastructure, durable event delivery, Flows plumbing, monitoring, and ongoing API and policy changes into a service that is ready for production. A DIY gateway is reasonable for one business; becoming an approved and reliable provider for other businesses is a company, not a weekend project.

what you lose

xMeta Business Partner status and approved Tech Provider onboarding path

xturnkey onboarding for multiple customer businesses and phone numbers

xmanaged queues, retries, monitoring, security, and production reliability

xWhatsApp Flows builder, encryption, and data-exchange hosting

xhosted functions, MCP tooling, and a production team inbox

share on X ↗"I just replaced Wabery ($15/mo) with one prompt"
the escape hatch

Don't feel like building it? These folks already made it free.

WhatomateThe missing inbox, flow builder and API for Meta's Cloud API; Meta still sends the bill.1.4kaug 2026open source↗

no votes, no pay-to-list · just what's real

the numbers

Wabery pricing

planmonthlyannual (per mo)what you get
free$0/workspace$0/workspace500 messages/month; all product features.
125k messages$15/workspace—125,000 messages/month; all product features.
600k messagescustom—600,000 messages/month; all product features.
3.5m+ messagescustom—3,500,000+ messages/month; all product features.

free tier500 messages/month; all features

billingmonthly and cancel anytime; no annual plan published

hidden costsMeta's WhatsApp conversation/message charges are billed directly to the connected WhatsApp Business Account and are not included; AI-model tokens are also separate.

verified 2026-08-14 · source ↗

questions
Vibecode Wabery

Kinda. The core of Wabery is buildable in a weekend with the prompt on this page, but there are real gaps: Meta Business Partner status and approved Tech Provider onboarding path, turnkey onboarding for multiple customer businesses and phone numbers. Read the honest list above before committing.

How much does Wabery cost?

Wabery costs about $15/month (125K messages, checked 2026-07-30), which is $180 per year.

What do I lose by replacing Wabery?

Honestly: Meta Business Partner status and approved Tech Provider onboarding path; turnkey onboarding for multiple customer businesses and phone numbers; managed queues, retries, monitoring, security, and production reliability; WhatsApp Flows builder, encryption, and data-exchange hosting; hosted functions, MCP tooling, and a production team inbox. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Wabery?

Yes: Whatomate (The missing inbox, flow builder and API for Meta's Cloud API; Meta still sends the bill.) The prompt is for when you want it exactly your way.