Messaging
A 59-screen WhatsApp clone โ chats list, conversations, calls, status, and settings.
Install in one line
Drops ./APPSPEC.md into your project and references it from ./CLAUDE.md. One file โ screens, tokens, and interactions.
2.2k
Installs
59
Screens
298
Saves
Not affiliated with WhatsApp. Reverse-engineered for educational and prototyping use only.
WhatsApp is a tab-based messenger with 1:1 and group chats, voice and video calls, status stories, and rich media. This starter mirrors the full shell โ chats, calls, status, settings, group admin โ ready to adapt for any messaging product.
Toggle between the live prototype and the raw markdown this starter ships.
---
version: 1.0
name: WhatsApp
slug: whatsapp
description: A 59-screen WhatsApp clone โ chats list, conversations, calls, status, and settings.
categories: [messaging]
screens: 59
platform: [android]
generated: 2026-04-13T14:21:51.556Z
source: https://appspec.md/starters/whatsapp
---
# WhatsApp โ APPSPEC.md
_Reverse-engineered UI specification. Not affiliated with WhatsApp. Generated by [APPSPEC.md](https://appspec.md)._
## 01 ยท Overview
A 59-screen WhatsApp clone โ chats list, conversations, calls, status, and settings.
WhatsApp is a tab-based messenger with 1:1 and group chats, voice and video calls, status stories, and rich media. This starter mirrors the full shell โ chats, calls, status, settings, group admin โ ready to adapt for any messaging product.
This spec covers **59 screens** across 7 flows. It is intentionally UI-only โ no backend contracts, no API shapes, no auth. Bring your own Supabase / Firebase.
## 02 ยท Navigation
The app clusters into 7 flow groups:
```
Home & Dashboard (4 screens)
โโ CommunityHomeScreen
โโ HomeScreen
โโ PaymentHomeScreen
โโ StatusFeedScreen
Social & Community (8 screens)
โโ ChatLockSettingsScreen
โโ ConversationScreen
โโ CreateGroupScreen
โโ EditMessageScreen
โโ GroupInfoScreen
โโ MessageContextScreen
โโ MessageSearchScreen
โโ MetaAIChatScreen
Media & Playback (3 screens)
โโ MediaEditorScreen
โโ MediaGalleryScreen
โโ MediaPickerScreen
Onboarding & Auth (4 screens)
โโ EncryptedBackupSetupScreen
โโ PrivacyCheckupScreen
โโ PrivacySettingsScreen
โโ ProfileSetupScreen
Profile & Settings (11 screens)
โโ AppearanceSettingsScreen
โโ AvatarEditorScreen
โโ ChannelEditScreen
โโ DeleteAccountScreen
โโ MoveAccountScreen
โโ MyProfileScreen
โโ NotificationSettingsScreen
โโ SecureAccount2FAScreen
โโ SecureAccountScreen
โโ SettingsScreen
โโ UsernameEditScreen
Detail & Sheet (3 screens)
โโ ConfirmSecretCodeScreen
โโ ContactDetailScreen
โโ FilterBottomSheetScreen
Other (26 screens)
โโ BackupPasswordScreen
โโ BackupStorageScreen
โโ BlockedContactsScreen
โโ BusinessDirectoryContextualSearchScreen
โโ BusinessDirectoryScreen
โโ BusinessDirectorySearchScreen
โโ ChannelInfoScreen
โโ ChannelInsightsScreen
โโ ChannelMembersSearchScreen
โโ ContactUsScreen
โโ ContactsHubScreen
โโ CreateSecretCodeScreen
โโ โฆ +14 more
```
## 03 ยท Screens
Full UI specification for every screen โ layout, components, copy, and state transitions. Every screen below is grounded in the real shipped app.
_screens.md content not available for this starter._
## 04 ยท Components
Reusable UI primitives implied by the screens above. Use these as your component boundaries when rebuilding:
- **TabBar** โ Bottom tab bar โ the primary navigation spine. Tabs derived from ยง 02.
- **AppHeader** โ Top header with title, leading icon/avatar, and trailing action(s).
- **ListRow** โ Dense list row with leading icon/avatar, title, subtitle, and trailing chevron or action.
- **MetricTile** โ Dashboard tile โ label, value, optional progress, tap โ detail screen.
- **PrimaryButton** โ Filled button in brand accent. Pill or rounded per tokens ยง 05.
- **Sheet** โ Modal bottom sheet for pickers, confirmations, and settings leaves.
- **PostCard** โ Feed card โ author, media, caption, reactions, comments affordance.
- **CommentRow** โ Threaded comment with avatar, handle, body, like, and reply action.
- **Player** โ Now-playing bar and full-screen player โ transport controls, scrubber, metadata.
See `## 03 ยท Screens` for per-screen component composition.
## 05 ยท Design Tokens
Coherent system inferred from brand cues and app category. Use these verbatim, or override a few lines โ don't reinvent the scale.
```yaml
tokens:
brand:
accent: "#25D366"
accentSoft: "rgba(37,211,102,0.15)"
palette:
- { name: "WhatsApp Green", hex: "#25D366" }
- { name: "Teal Accent", hex: "#128C7E" }
- { name: "Ink", hex: "#111B21" }
- { name: "Surface", hex: "#FFFFFF" }
- { name: "Muted", hex: "#8696A0" }
radius: "8px bubbles ยท full avatar ยท pill buttons"
spacing: "4px base grid"
typography: "System sans ยท 14/16/20/24"
elevation:
- "0 1px 2px rgba(0,0,0,0.06)"
- "0 8px 24px rgba(0,0,0,0.12)"
```
## 06 ยท Interactions
Key micro-interactions surfaced from the screen spec. The small moments that make the clone feel real.
- (no interactions extracted โ see `## 03 ยท Screens` for per-screen behavior.)
## 07 ยท Do's and Don'ts
**Do**
- Use realistic placeholder content โ real-sounding usernames, captions, prices, dates. No Lorem Ipsum.
- Fetch photos, avatars, and thumbnails from real URLs (pravatar, picsum, etc.) โ never gray rectangles.
- Declare the design system at the top of your output, then reuse tokens across every screen.
- Build every screen listed in `## 03 ยท Screens` โ don't drop screens to save effort.
- Make every frame interactive โ tabs switch, lists scroll, forms accept input.
**Don't**
- Don't ask the user to clarify colors, images, fidelity, or dark mode โ apply the tokens.
- Don't render empty gradient rectangles or `[image]` / `[avatar]` labels.
- Don't invent screens that aren't in the spec.
- Don't ship a static mockup โ every frame is live DOM.
- Don't assume a backend โ this spec is UI-only.
## 08 ยท Responsive Behavior
Primary target is mobile portrait (iPhone 15 Pro, 390ร844 logical). On tablet and desktop:
- Keep the phone as a scalable frame (`transform: scale(...)`) โ never resize inner content.
- Canvas gallery mode: at โฅ1100px show 3 phone frames per row; at โฅ700px show 2; below 700px show 1.
- Safe-area insets: respect the status bar (9:41) and home indicator on every screen.
- Android notes: where the source app differs from iOS conventions, the screens section calls it out inline.
## 09 ยท Agent Prompt Guide
Copy-paste prompts for your coding agent:
```
Read APPSPEC.md. Build the home screen using the tokens in ยง 05 and the layout in ยง 03.
```
```
Read APPSPEC.md. Generate a single standalone HTML prototype with every screen in ยง 03 as an independently-stateful phone frame in a scrollable gallery.
```
```
Read APPSPEC.md ยง 04. Scaffold the listed components in React + TypeScript, one file per component, using the tokens in ยง 05.
```
Tips:
- Reference sections by number (`ยง 03`, `ยง 05`) โ agents latch onto structure more reliably than prose.
- When asking for one screen, name it exactly as written in `## 03 ยท Screens`.
- The spec is UI-only. If you need API shapes, write them yourself and pass them as a separate doc.
Every screen in the app with full UI spec. Click a group to jump into screens.md.
+ 11 more in screens.md.
How screens cluster into flows. Derived automatically โ good sanity check when you're rewiring the app.
A coherent system derived from brand cues and app category. Use it verbatim, or override the tokens in ยง 05 of APPSPEC.md.
Palette
WhatsApp Green
#25D366
Teal Accent
#128C7E
Ink
#111B21
Surface
#FFFFFF
Muted
#8696A0
Typography
The quick brown fox jumps
Body copy at 16 / 24 โ comfortable for long reads.
Meta ยท 12 / 16 ยท tracking tight
System sans ยท 14/16/20/24
Radius & Spacing
4px
8px
12px
pill
8px bubbles ยท full avatar ยท pill buttons
4px base grid
Elevation
level 0
level 1
Layered shadows for cards, sheets, and floating buttons.
Same vibe, different product. All generated the same way.
Can't find what you want?
Any Android app, ~5 minutes, markdown specs ready to drop into Claude Design, Cursor, or Claude Code.
Run APPSPEC.md on an APK