Build WhatsApp apps in minutes.
Connect your systems via MCP. Type-safe templates.
From webhook to response in 10 lines of code.
$ npm install @manano-ai/whamhandler.onMessage(Filter.text, async (message) => {
// Connect to your systems via MCP
const mcp = await getMCPClient();
const order = await mcp.getOrderStatus(orderId);
// Respond with type-safe template
await whatsapp.sendMessage(
message.from,
orderStatusTemplate.send({
orderId: order.id,
status: order.status,
tracking: order.trackingNumber
})
);
});From idea to production in three steps
Build with code or AI, deploy instantly, reach billions of users
Build
Write type-safe TypeScript with our SDK, or describe what you want and let AI generate it. Preview instantly in the simulator.
Deploy
One click to production. We handle containers, webhooks, SSL, and Meta API sync. Your app gets a unique URL instantly.
Live
Your WhatsApp app is live. Real users, real conversations, real-time logs. Update anytime with zero downtime.
Everything you need to build WhatsApp experiences
Templates
Pre-approved message formats for notifications, updates, and outbound messaging.
Flows
Rich interactive forms with buttons, dropdowns, and multi-step wizards inside WhatsApp.
Webhooks
Receive messages in real-time. Filter by type, respond instantly, connect to any backend.
AI Builder
Describe your app in plain English. AI generates the code, you tweak and deploy.
The complete WhatsApp toolkit
Everything you need to build, test, and deploy WhatsApp integrations. Type-safe from template to webhook.
Type-safe Templates
Define templates with full TypeScript safety. Placeholder counts validated at compile time. No more runtime errors.
// Define a type-safe message template
const orderConfirm = template('order_confirm', {
category: 'UTILITY',
language: 'en',
body: body.text(
'Order #' + '{{1}}' + ' confirmed! Total: ' + '{{2}}',
'ORD-123', '49.99' // Example values
),
buttons: [
button.url('Track Order', 'https://...'),
button.quickReply('Need Help'),
],
});
// Send with full type checking
await client.send(phoneNumber, orderConfirm.send({
orderId: 'ORD-456',
total: '129.00'
}))Interactive Flows
Build multi-screen WhatsApp forms. Zod validation at every step. Complex UIs made simple.
// Build multi-screen forms with Zod validation
const bookingFlow = flow('booking', {
categories: ['APPOINTMENT_BOOKING'],
}, ($) => ({
SELECT_SERVICE: $.screen(
z.object({ service: z.string() }),
(s) => ({
title: 'Book Appointment',
body: [
s.dropdown('service', 'Choose service', [
{ id: 'haircut', title: 'Haircut', },
{ id: 'color', title: 'Hair Color' },
]),
],
footer: { label: 'Next', payload: { service: s.form.service } },
}),
),
}));Smart Webhooks
Route events with type-safe filters. Handle messages, buttons, flow completions. Built-in reply helpers.
// Route webhooks with type-safe filters
const handler = new WebhookHandler();
// Handle text messages
handler.onMessage(Filter.text, async (msg) => {
const reply = await openai.chat(msg.text.body);
await msg.reply(reply);
});
// Handle flow completions - data is typed!
handler.onFlowComplete(bookingFlow, async (result) => {
await createBooking(result.data);
await result.reply('Booking confirmed!');
});AI Builder
Describe what you want in plain English. AI writes the code, you preview in simulator, deploy in one click.
Send & Wait
Send messages and await replies with async/await. Built-in timeout handling and delivery tracking.
One-Click Deploy
Templates sync to Meta automatically. Flows publish instantly. Your webhook runs on our infrastructure.
Test without credentials
The WHAM simulator runs locally. No WhatsApp Business account needed. Build, test, and iterate before touching production.
Full API Simulation
All messaging endpoints, templates, and flows work locally
Webhook Round-trips
Test complete message flows with HMAC-signed webhooks
Error Injection
Simulate rate limits, failures, and edge cases
CI/CD Ready
Run in tests without real credentials
$ wham dev
✓ Simulator started at http://localhost:3001
✓ Webhook endpoint at http://localhost:3000/webhook
✓ Hot reload enabledWelcome to Bella's Hair Salon! How can I help you today?
10:32Book Appointment
10:33 ✓✓Select a Service
Deploy like it's 2026
Version control your WhatsApp infrastructure. Plan changes, preview diffs, deploy with confidence.
Define Resources
Declare templates and flows in TypeScript
// wham/resources.ts
export const resources = resourceSet([
bookingFlow,
reminderTemplate,
confirmationTemplate,
]);Preview Changes
See what will be created, updated, or deleted
$ wham plan
+ flow.booking create
~ template.reminder update body
- template.old_promo deletePush to Deploy
Apply changes with a single command
$ wham apply
Applying 3 changes...
✓ flow.booking created
✓ template.reminder updated
✓ template.old_promo deleted
Deployed in 4.2sCI/CD Ready
Integrate with GitHub Actions, GitLab CI, or any CI system. Deploy on merge to main. Preview environments for every PR.
# .github/workflows/deploy.yml
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npx wham apply --yesGet early access to Whambam
Join the waitlist for our AI-powered WhatsApp builder. Describe what you want to build, and we'll create it for you.
First 50 teams get founding member pricing.
Invite friends to skip the line.