Documentation Index
Fetch the complete documentation index at: https://zapo.to/llms.txt
Use this file to discover all available pages before exploring further.
zapo (published on npm as zapo-js) is an independent, runtime implementation of the WhatsApp Web protocol written in TypeScript. It is not a wrapper or fork of an existing WhatsApp client library — the protocol source of truth is the deobfuscated WhatsApp Web client, and the goal is behavior parity with WhatsApp Web while improving CPU, memory, and allocation efficiency.
Why zapo
Coordinator-first API
Every feature area is a focused coordinator:
client.message, client.group, client.newsletter, client.privacy, and more.Pluggable storage
One
createStore factory, per-domain provider selection, and official backends for SQLite, PostgreSQL, MySQL, Redis, and MongoDB.Multi-session ready
Every query is scoped by
sessionId, so a single process can drive many accounts — built for multi-tenant workloads.Performance-disciplined
Uint8Array everywhere, zero-copy in hot paths, bounded in-memory structures, async I/O, and synchronous crypto (bar elliptic-curve ops) for raw throughput.Design principles
These principles drive every implementation decision in the codebase:- index-first — protocol behavior is validated against WhatsApp Web before anything is implemented.
- performance-first — optimize for low CPU, low RAM, low allocations, and zero-copy in hot paths.
- async-first I/O — I/O and network operations are asynchronous. Crypto, by contrast, runs synchronously — only elliptic-curve operations are async. Keeping the rest of crypto sync delivered a large, measurable throughput gain.
Requirements
- Node.js
>= 20.9.0 - A package manager (
npm,pnpm, or similar) - No mandatory runtime dependencies — backends and logging are opt-in peer dependencies.
Get started
Installation
Install
zapo-js, pick a storage backend, and wire up optional peers.Quickstart
Connect, scan a QR code, and reply to your first message in minutes.
Architecture
Understand the client, coordinators, stores, and event flow.
Sending messages
Text, replies, mentions, media, polls, reactions, and more.
