Loading

SaaS Tool · 2026

AntApp WhatsApp Business Inbox

A multi-tenant WhatsApp operations panel where each business connects its own WhatsApp Business account, built and run at Ant Arge.

Year

2026

Type

SaaS Tool

Role

Full Stack Developer

Tech Stack

  • Next.js
  • React
  • TypeScript
  • Drizzle
  • PostgreSQL
  • Supabase
  • Auth.js
  • Tailwind CSS
  • WhatsApp Cloud API
  • WooCommerce
  • PHP
  • Cloudflare
PrivatePrivate repository. Source code is not public.

Project Summary

AntApp is a WhatsApp operations panel for businesses, built at Ant Arge on the official Meta WhatsApp Cloud API. Each business connects its own WhatsApp Business account and becomes a separate tenant, with its own contacts, templates, campaigns and message history. Teams answer customers from a shared inbox, manage contacts, sync approved templates and run broadcast campaigns. A platform admin console covers users, tenants, API keys, deliveries and an audit log. A companion WordPress plugin lets WooCommerce stores send order and shipping updates over WhatsApp without writing code.

All tenants share one Meta webhook URL. Each request passes an HMAC-SHA256 signature check, is matched to its business by phone number ID and is handled in that tenant's context, and incoming messages are stored idempotently. Delivery states (sent, delivered, read, failed) and per-message pricing are written back to Postgres, and the inbox updates live over server-sent events. The app runs as a long-lived Node process on Coolify behind Cloudflare, and its background workers resume after a restart.

Problem & Solution

Problem
  • Customer conversations were spread across individual phones
  • Several businesses had to share one Meta app without any of them handling its secret
  • Bulk sending without limits risks spam reports and blocked numbers
  • Stores wanted WhatsApp order and shipping updates without custom development
  • Nobody could tell whether a message was delivered or read, or what it cost
Solution
  • A shared team inbox grouped by contact, with direct replies, template sends and live updates
  • Per-tenant tokens and IDs behind a single platform webhook with signature verification
  • Broadcasts with random 8–15 second gaps, a cooldown after every 20 messages, daily caps, sending hours, and consent and blacklist checks
  • A WooCommerce plugin that pairs with a single-use code and turns order and shipping events into approved utility templates
  • Delivery tracking for every message, with sent, delivered, read and failed timestamps plus pricing data

Key Features

01

Team Inbox

Incoming and outgoing messages are grouped into one chat per contact. The team can reply directly or send an approved template, and the inbox updates live over server-sent events.

02

Broadcast Campaigns

Choose a template and a recipient segment, then follow the queue on a live monitor while the sender applies delays, cooldowns, daily limits and sending hours.

03

Contacts CRM

CSV, TSV and XLSX import, CSV export, tags, consent status, notes and a blacklist.

04

Template Sync

Templates with name, phone and company variables, kept in sync with Meta's message templates.

05

Automatic Opt-Out

Replies such as STOP, IPTAL or DUR add the contact to the blacklist automatically.

06

WooCommerce Plugin

A PHP plugin, compatible with HPOS and Checkout Blocks, that sends order status and shipping events. It can also embed the panel in wp-admin through a short-lived signed frame.

Technical Details

Webhook Pipeline

GET answers Meta's verify-token handshake. POST checks x-hub-signature-256 with a timing-safe HMAC comparison, resolves the tenant from phone_number_id and writes messages idempotently.

Delivery Tracking

Cloud API statuses map to sent, delivered, read and failed timestamps, along with attempt counts, pricing model and a billable flag. The same statuses flow back to WooCommerce event records.

Data Model

22 Postgres tables managed with Drizzle, all scoped by tenant ID with composite indexes. Store secrets are encrypted with AES-256-GCM, and plugin requests are signed with HMAC-SHA256.

Deployment

A long-lived Node process on Coolify behind Cloudflare, with health checks. The WhatsApp service and the WooCommerce worker resume automatically after a restart.

Have a project? Let's talk.

Have a project in mind or a question about my work? Email or LinkedIn is the best way to reach me.