Skip to main content
Zapo 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.
Stability. zapo is 1.0 and stable. It follows semantic versioning — breaking changes only ever land in a new major release. You can upgrade across minors and patches safely; still validate major upgrades against the changelog.

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.

Disclaimer

This project is an independent implementation for engineering and interoperability research. It is not affiliated with or endorsed by WhatsApp.
Last modified on June 1, 2026