WhatsApp Clone · Features

WhatsApp Clone Features: Everything People Expect, Plus What an Operator Needs

Users judge a messenger on whether the ticks turn blue and whether the call connects. Operators judge it on the day somebody has to be removed. This build ships both halves: one-to-one and group chat with end-to-end encryption, voice and video that connect device to device, stories, polls and twelve message types, and behind them a console with moderation queues, sixteen languages and branding a non-technical person can change.

Request a Live Demo →Full Overview
4 surfaces, one API
Calls that never meter
6 days to deploy
A million minutes
Costs the same as none
What Ships in the Conversation
01Text, with ticks and typing
02Photos, video, voice notes
03Documents, GIFs, location
04Replies, reactions, polls
05Voice and video calling
06Stories that actually expire
16
Languages, Translated
4
Apps Included
12
Message Types
15
Dashboard Metrics
By Role

Feature Set by Role

Four surfaces over one Node.js API, so nothing drifts between the phone, the desk and the console.

01

The Person Chatting

Sign in with a phone number and a one-time code, sync the contacts already on the phone, and start talking. Delivered and read ticks, typing indicators, online status and last-seen, search back through a conversation for something from last month, and a story tray across the top of the chat list.

02

The Group

A name, a photo and a member list, with admins you promote and members you remove. Public groups people can find and join, a size limit you set rather than one imposed on you, replies into a busy thread, emoji reactions, and polls whose votes update live while the group watches.

03

The Caller

Voice or video, one-to-one or group, with a proper incoming-call screen and a ringtone that works with the app closed. Every call is logged as missed, accepted or declined with its duration, and the history filters by missed, audio or video.

04

The Person at a Desk

The browser client is not a cut-down version. Same conversations, same calls, same stories, same settings, and one account can hold several live connections at once, so a message reaches the phone and the browser together and reading it on one clears it on the other.

05

The Moderator

Reported users and reported groups as two queues rather than an inbox, each report showing who filed it, who it names, the reason chosen and the conversation it came from. Block a person or a whole group, and a record of which accounts have already been reviewed so two moderators do not duplicate the work.

06

The Operator

Fifteen live dashboard figures, who is online right now and in the last thirty minutes, the mobile and web split, and which sign-in method people actually used, which is how you learn whether to keep paying for SMS. Plus branding, languages and your integration keys, all as forms.

Operators sign in with their own credentials on a separate privilege tier from any user account, so console access is never a flag on somebody's messaging profile.

Compare

Clone vs Generic Script vs Renting a Consumer App

Most routes to a messaging platform hold up until the first serious incident, or the first invoice.

What decides itMiracuves WhatsApp CloneA group on a consumer app
Who is active this weekFifteen live figures on a dashboardNobody knows, and nobody can find out
Removing someone properlyBlock the account, or the whole groupThey rejoin from a second number
Group sizeA limit you set yourselfA cap somebody else chose
Whose name is on itYours, changed from a console formTheirs, permanently
Voice and video costDevice to device, so volume is freeFree until the terms change
Where the data livesYour database, your jurisdictionSomebody else's, under their policy
Adding a languageConsole task, no resubmissionWhatever they have translated
Source codeYours outright, no revenue shareNone, and no export worth having

WhatsApp itself is the reference for what people expect a messenger to do; it is not a product you can buy or self-host. The comparison that matters commercially is the second column against the third, and against a custom build, which is covered on the Development Cost page.

End to End

From a Phone Number to a Moderated Community

Seven stages, each one a real part of the build rather than an idealised flow.

Step 1

They sign in with a number

A phone number and a one-time code, or email, or Apple, Google and Facebook. There is no user password anywhere in the system, which means there is no password database to steal, and the choice of method is a console setting rather than a build decision.

Step 2

They find the people they know

Contact sync shows which of the numbers already on the phone are on your platform, they can save their own name for someone regardless of what that person calls themselves, and they can search for people who are not in the address book at all.

Step 3

The first conversation happens

Messages arrive over a persistent socket rather than by polling, so delivery, typing indicators, presence and read receipts are events rather than refreshes. The content is end-to-end encrypted, which means it is unreadable in transit and sits in your own database as ciphertext.

Step 4

Media goes in the same pipe

Photos and video from camera or gallery, voice notes recorded in the app, documents, GIFs, a location pin and a contact card. Video is compressed and thumbnailed on the phone before upload, so sending stays quick on a poor connection rather than only on a good one.

Step 5

A group forms and gets admins

One-to-one chats and groups are the same object with a flag, so delivery, permissions, moderation and retention behave identically for both. Nothing had to be built twice, and nothing behaves unexpectedly in a group because somebody forgot a case.

Step 6

Somebody calls, and it does not cost you

Voice and video connect directly between the two devices over WebRTC, with a relay server taking over only for the minority of calls where a restrictive network blocks the direct route. Call setup is signalled over the same real-time connection that carries messages.

Step 7

Somebody behaves badly, and you can act

A report arrives in the right queue carrying the reason chosen from a list you wrote, who filed it and the conversation it came from. You block the account or the whole group, and the review state is recorded so the next moderator does not start again from the beginning.

An hourly scheduled job removes stories past twenty-four hours and pins that have reached their expiry, so ephemeral content genuinely disappears rather than accumulating quietly in the database for years.

Justified

Every Feature Earns Its Place

Each row is here because a messaging platform stops working without it, not because a competitor lists it.

ModuleWhy it is in the base build
Calls that connect device to deviceA messenger wired to a third-party calling vendor gets more expensive precisely as it gets more successful. WebRTC with a relay only for blocked routes means a million minutes of conversation costs what none of them did.
One object for chats and groupsBuilding a group as a separate thing from a conversation means writing delivery, permissions, moderation and retention twice, and then discovering next year that a group behaves differently in one of the four.
Your actions stored against youStarring, pinning, archiving, clearing and delete-for-me belong to the person who did them rather than to the message. It is why you can clear a conversation without erasing it for the person you were talking to.
Presence held in the databaseLive connections and typing state written to the database rather than kept in one server's memory is what makes growing onto several servers an adapter and a load balancer rather than a redesign.
Relative media pathsUploads stored as relative paths and turned into full URLs on read mean moving domain, or moving media onto object storage later, does not require rewriting every existing row.
Report reasons you writeThe categories people can choose when reporting decide whether a queue is useful or noise. Writing them yourself, separately for users and groups, is what makes moderation match what actually goes wrong on your platform.
Review state on the recordModeration is a team activity under pressure. Recording which accounts have already been looked at is a small thing that stops two people working the same report and missing the next one.
Scheduled expiryEphemeral features are a promise to your users. An hourly job that actually removes expired stories and pins is the difference between content disappearing and content being hidden from view while it accumulates.

Sixteen languages ship already translated with right-to-left handled properly, and a translation engine in the console lets you add the seventeenth without an app-store resubmission.

Stack

The Technology Behind the Features

Deliberately ordinary, so any competent Node and Flutter team can take it forward without us.

API and application coreNode.js and Express on MySQL with Sequelize, serving one JSON API to all four clients across three privilege tiers: public, signed-in user and operator. Every database call goes through an ORM that parameterizes queries, and the whole thing runs under PM2 for restarts, clustering across cores and log handling.
The real-time layerSocket.IO holding persistent connections rather than polling for new messages, with several live connections per account so a phone and a browser both receive. Typing indicators, presence and read receipts are events, and the connection registry lives in the database ready for multi-server scaling.
Mobile applicationsOne Flutter codebase producing both the iPhone and Android builds, so a feature lands on both at once instead of one waiting on the other. Conversations are cached on the device so the app opens instantly and stays readable through a dead spot, with camera, gallery, voice recording and contact access wired in.
CallingWebRTC connecting voice and video directly between devices, with a relay server taking over when a restrictive network blocks the direct route. Call setup is signalled over the same socket that carries messaging, and every call is recorded as missed, accepted or declined with its duration.
Data and mediaMySQL across nine data domains, from identity and conversations through to moderation and settings. Uploads are sorted into folders by type with filenames sanitized on the way in, media paths are stored relative, and an hourly scheduled job clears expired stories and pins.
The operator consoleA React application on its own credentials and its own privilege tier, carrying sixteen interface locales itself rather than only in the apps, with analytics calculated from the live database rather than a separate pipeline and integration secrets shown masked so an operator manages keys without reading them.

A single Node.js application owns every rule and the four clients are presentation layers over one API. One deploy, one schema, one set of rules, which is what stops four surfaces drifting apart over a year of changes.

Honest Readiness

What Is Not Included in the Base Package

None of these are gaps. Each is a decision about what belongs in a platform and what belongs to the operator running it.

01

Encryption ships, key recovery does not

End-to-end encrypted messaging is delivered with the platform. What sits outside it is the operational layer around the keys: encrypted chat backup and restore across a device change, and a recovery path for somebody who loses their phone. Both are scoped work, and both matter more the more your users rely on you.

02

No payments or subscription billing

A messenger does not need one, and the right provider depends entirely on your market. If you intend to charge for access, run paid tiers or move money between users, that is an integration quoted against your market rather than a switch somewhere in the console.

03

The pre-launch hardening pass

TLS termination, global rate limiting, upload size and type restrictions, secret vaulting, security headers, restricting who can reach the operator console, and a backup restore that has actually been tested. Scoped work we complete with you before the platform faces the public.

04

Enterprise sign-on

Phone, email and social sign-in all ship. Corporate single sign-on, directory synchronization and automated account provisioning and deprovisioning are what an internal enterprise rollout usually needs on top, and they are scoped rather than assumed.

05

Four things you grow into

Wiring a real-time adapter so several application servers fan messages between themselves, moving media onto object storage with signed URLs and a CDN, append-only audit logging forwarded into a SIEM, and outbound webhooks for bots and integrations. The groundwork for the first two is already in the build.

06

What is built is real

Four surfaces over one API, end-to-end encrypted messaging, WebRTC calling with relay fallback, twelve message types, stories with genuine expiry, moderation queues for users and groups, sixteen translated languages with right-to-left, fifteen dashboard metrics, and a documented security posture with a VAPT compliance reference.

The documentation set that comes with it is written for your engineers rather than for us: product requirements, the data model, an API reference, a developer and security handbook, and the compliance reference above.

Development Company

See how Miracuves compares to agencies and freelancers

The deployment process, the nine questions worth asking anyone bidding on a messaging build, the red flags, and a modelled reference deployment - on the Development Company page.

See the comparison →
FAQ

Frequently Asked Questions

Do voice and video calls cost me anything?
Almost nothing, and this is the single most consequential property of the build. Calls connect directly between the two devices over WebRTC, so the audio and video never travel through your servers and a busy calling day consumes bandwidth you never paid for. A relay server carries only the minority of calls where a restrictive network blocks the direct route. Products built on a third-party calling vendor charge per minute forever, which quietly makes your success expensive.
Is the messaging actually end-to-end encrypted?
Yes, and it is part of what we deliver rather than a premium module quoted once you are committed. Message content is unreadable in transit and sits in your own database as ciphertext, so a database dump does not hand somebody the conversations. Call media is encrypted by the WebRTC stack as standard. What is not included is the operational layer around the keys, meaning encrypted chat backup across a device change and a recovery path for a lost phone, and both are named as scoped work rather than implied.
What can I actually change without a developer?
Your app and website name, primary and secondary colours, light and dark logos, favicon, banner, copyright line and store links. Your privacy policy and terms links. Which languages are available and which one new users get by default, plus translating the interface key by key from the console. The chat wallpapers, default avatars, ringtones and alert sounds your users can choose from. Your report reasons. Your group size limit. Your SMS, push, maps and email credentials, entered once and shown masked.
Can somebody be signed in on their phone and a computer at once?
Yes, and the behaviour is the part worth checking on any messaging build. One account can hold several live connections, so a message reaches the phone and the browser together rather than arriving on one and sitting unread on the other all day. Reading it on either updates both. The browser client is a full client too, with the same conversations, calls, stories and settings rather than a cut-down view for people who happen to be at a desk.
What happens when the connection drops?
The mobile app keeps conversations cached on the device, so it opens instantly rather than showing a spinner, and stays readable through a dead spot. When the connection returns it catches up. That matters more than it sounds: the difference between a messenger people trust and one they abandon is usually how it behaves on a train rather than how it behaves on a demo.
How many languages does it ship with?
Sixteen, already translated rather than sixteen empty language files waiting for you: Arabic, Danish, German, Greek, English, Spanish, French, Hungarian, Italian, Japanese, Polish, Portuguese, Russian, Swedish, Turkish and Chinese, with right-to-left layouts handled properly. Adding the seventeenth is a console task using the translation tool built into it, and changing wording never requires an app-store resubmission because the strings are data rather than code.

Open two accounts and message between them

Messaging only proves itself with two people in the conversation. Open one account in your browser and the second in a private window, then watch the ticks and the typing indicator.

Four surfaces. One API. Your name on all of it.

iPhone, Android, browser and an operator console over one Node.js application, with the branding, the languages, the limits and the rules all held as configuration you control.

Talk to Us →
Miracuves · WhatsApp Clone Solution Feature set, stack and stated limitations cross-verified against the hub, 2026-09-10
Disclaimer

Miracuves is an independent software development company. We are not affiliated with, connected to, sponsored by, or endorsed by WhatsApp.

Why this name

WhatsApp Clone” is used descriptively. It is how the software industry refers to building a platform with functionality similar to WhatsApp, and how clients search for it.

Who built this

The entire design and codebase is built by our own team. The product contains no code, design, graphics, or content originating from the WhatsApp website or applications.

Trademarks

WhatsApp and all other third-party names and marks are the property of their respective owners, referenced here solely to describe the category of software offered.