
Murmur
Push-to-talk dictation for macOS using your own OpenAI API key
A Dockerized REST backend, queue worker, webhook layer, and React admin UI for operating Exotel WhatsApp Business API workflows on infrastructure you control.

Exotel WhatsApp is an open-source, Dockerized reference implementation for teams that need an operational layer around Exotel WhatsApp Business APIs. It combines an Express and TypeScript REST backend, a React and Vite admin interface, a background queue worker, webhook ingestion, and persistence in one deployable project. The repository describes it as an unofficial community project and explicitly states that it is not affiliated with, endorsed by, or maintained by Exotel. It is therefore best understood as infrastructure that customers operate themselves, rather than as an official Exotel product or a hosted messaging service.
The central use case is managing WhatsApp messaging through Exotel credentials. The project exposes authenticated routes for storing Exotel connection details, sending individual or bulk messages, retrieving locally persisted message records, cancelling messages, and receiving Exotel webhooks. Its coverage documentation describes validation for E.164 phone numbers, canonical WhatsApp message payloads, status callbacks, and bulk sends of up to 100 messages. Outbound work is placed on a BullMQ queue backed by Redis, while message and audit state are persisted through Prisma and PostgreSQL. The repository also documents health endpoints at /healthz and /readyz, Prometheus metrics at /metrics, and a worker process that sends queued messages through Exotel.
Template operations are handled through project-level routes that correspond to Exotel’s published template-management endpoints. The admin surface can list locally cached templates or request a live Exotel list, and it supports creating, updating, deleting, and uploading sample media for templates. The coverage matrix identifies a required WABA ID for Exotel template operations. The project also adds onboarding-link routes for generating Exotel onboarding links and validating onboarding tokens. The supplied Exotel documentation states that generated onboarding URLs are valid for 24 hours, that up to 50 URLs can be fetched at a time, and that one token can onboard up to five customers during that period. Those limits belong to the underlying Exotel onboarding API and should be treated as external operating constraints.
The React admin UI is intended for routine operational work rather than for end-user messaging. Documented areas include a credential vault, send-test console, template manager, onboarding dashboard, and webhook viewer. Credentials can be provisioned from the UI or through the credentials API, and the repository lists the required Exotel fields as API key, API token, subdomain, SID, region, and, for template calls, WABA ID per request. An optional webhook secret enables HMAC validation for incoming webhooks. The project includes development and production Docker Compose files, multi-stage images for the API and UI, and an optional Caddy reverse proxy. The documented development stack uses localhost ports 4000 for the API and 5173 for the UI; the production compose setup exposes the API on port 4000 and the UI through a reverse proxy on port 8080.
This operating model creates a clear setup burden. Users need an Exotel WhatsApp Business API account and credentials, Node.js 20 or later, npm, Docker, Docker Compose, PostgreSQL, and Redis. The README says Redis is recommended and that queue and rate-limit features will not work without it. A deployment also requires environment configuration for the database, Redis, JWT secret, Exotel region, and optional webhook secret. The seeded development login is documented as [email protected] with the password changeme, so that credential should be changed or avoided outside local development. The public website is a documentation and landing page with a coverage matrix and static OpenAPI file; the supplied material does not establish that it provides a hosted demo or managed instance.
For technical teams, the value is the concentration of Exotel-specific routing, persistence, queueing, and administrative workflows in a project that can be inspected and deployed under their own control. The limitation is that this remains a reference implementation with integration responsibility left to the operator. Exotel account access, API behavior, message policies, credentials, infrastructure, and operational monitoring are not supplied by the project. The repository describes its Vitest configuration as a placeholder and calls for additional unit tests for the Exotel client, authentication, queue handlers, and integration tests with Testcontainers. The README identifies the project as MIT licensed, but no hosted pricing or commercial support terms are documented. Codex attribution is directly recorded in the repository, which says it was built with the Codex app.

| Category | Developer Tools |
|---|---|
| Platform | Web |
| Pricing category | Open source |
| Built with | Codex |
| Added to VibeAtlas | September 20, 2026 |
The project is easier to assess as an operational stack than as a standalone messaging product.
Sources: [1] github.com[2] vinodspattar.in
Evaluate the stack in the same order that its dependencies and external API access become relevant.
Verify that you have Exotel WhatsApp Business API credentials, including the API key, API token, subdomain, SID, and region. Confirm the WABA ID requirement for template operations.
Follow the documented install, Prisma generation, migration, seed, and Docker Compose commands. Check the API and UI at the documented local ports and replace the seeded development credential before any non-local use.
Provision credentials, send a test message, inspect the persisted message record, and verify the Exotel webhook route. Test the documented E.164 validation and bulk-send limits against your own payloads.
Run the worker with Redis available, observe queued sends and stored errors, and check the health and metrics endpoints. Confirm whether the documented persistence and operational signals meet your deployment needs.
Compare required workflows with the coverage matrix and OpenAPI file. Before production use, add or run the unit and integration coverage that the repository identifies as still needed.
Sources: [1] github.com[2] vinodspattar.in[3] developer.exotel.com
Sources: [1] github.com[2] vinodspattar.in
Recorded research signals from 2026-09-19. The editorial score is a selection heuristic, not a measured product rating. Counts may change.
Exotel WhatsApp is a focused reference implementation for teams that want to put an operational API and admin console around Exotel WhatsApp Business APIs. Its documented scope is concrete: queued message sending, local message state, template routes, onboarding-link workflows, webhook ingestion, health checks, metrics, and Docker-based deployment.
The trade-off is equally concrete. This is not an official Exotel product or a hosted messaging service, and it does not remove the need for Exotel credentials, PostgreSQL, Redis, deployment work, or integration testing. The most defensible conclusion is that it deserves a technical evaluation by teams comfortable owning those responsibilities, while teams seeking managed reliability or official vendor support should look elsewhere.
Sources: [1] github.com[2] vinodspattar.in
No. The repository and landing page describe it as an unofficial community project that is not affiliated with, endorsed by, or maintained by Exotel.
Read the sourceIt provides a REST API, React admin UI, queue worker, webhook handling, credential management, messaging routes, template operations, onboarding-link routes, health endpoints, and Prometheus metrics around Exotel WhatsApp Business APIs.
Read the sourceThe documented prerequisites include Node.js 20 or later, npm, Docker and Docker Compose, PostgreSQL, Redis, and access to Exotel WhatsApp Business API credentials. Environment configuration is required for the database, Redis, JWT secret, Exotel region, and optionally webhook validation.
Read the sourceThe project coverage documentation states that its messaging route supports bulk sends of up to 100 messages. Exotel’s messaging documentation describes the underlying messages array and payload requirements, including E.164 phone formatting.
Read the sourceThe supplied material documents a landing page, coverage matrix, OpenAPI file, and self-hosted Docker deployment. It does not establish that a hosted demo or managed service is available.
Read the sourceThe repository README identifies the project as MIT licensed. No hosted pricing or commercial support terms are documented in the supplied material.
Read the sourceSources: [1] github.com[2] vinodspattar.in[3] developer.exotel.com
Editorial updated: September 20, 2026. Features, prices and repository counts can change. Evaluation advice is editorial interpretation, not a claim of hands-on testing.