Your group chat, turned into a story.
VibeCheck is a privacy-first, fully client-side WhatsApp chat analyzer. Upload your .txt chat export and get a Spotify Wrapped–style analytics dashboard — rich stats, interactive charts, and a shareable 1080×1920 poster — all without a single byte of your data leaving your device.
- Top Talker — Who dominated the group and by how much (message count + percentage share)
- Pure Chaos — The busiest day of the week, backed by real frequency data
- Response Time — Group-wide average gap between messages
- Longest Silence — The maximum time the chat went completely quiet
- Busiest Date — The single highest-volume day in the chat's history
- Peak Hour — The time of day your group is most active
- Leaderboard — Full ranked list of all members by message volume, with visual progress bars
- Activity by Hour — Interactive bar chart showing message distribution across all 24 hours
- One-click "Export Wrapped" generates a high-resolution 1080×1920 PNG poster — styled for Instagram Stories, WhatsApp Status, or Twitter — entirely client-side via
html-to-image.
- Zero server involvement. Parsing runs inside a Web Worker in your browser.
- No accounts. No uploads. No tracking. No cloud storage. Ever.
VibeCheck auto-detects and parses all major WhatsApp export formats:
| Format | Example |
|---|---|
| iOS (12-hour) | [12/31/2024, 3:45:22 PM] Alice: hey |
| Android (24-hour, dot) | 31.12.2024, 15:45:22 - Bob: yo |
| Android (24-hour, slash) | 31/12/2024, 15:45:22 - Charlie: sup |
| India short date | 31/12/24, 15:45 - Dave: bhai |
| Android (12-hour short) | 12/31/24, 3:45 PM - Eve: lol |
| Month abbreviation | 31/Dec/24, 15:45 - Frank: ok |
Your chat data never leaves your browser. Not even once.
Here is exactly what happens when you upload a file:
- Your browser reads the
.txtfile from local disk — no network request is made. - The raw text is handed off to a Web Worker — a sandboxed background thread that has no access to the DOM, network, or any external API.
- The Worker parses every line using RegEx, aggregates all statistics in memory, and posts the result back to the UI thread.
- Your dashboard renders entirely from that in-memory result object.
- When you close or refresh the tab, everything is gone.
There is no backend. There is no database. There is no analytics pipeline collecting your group members' names or message counts. The app is a static Next.js build served over a CDN — it has no server-side runtime at all.
You can verify this yourself: Open your browser's Network tab before uploading. You will see zero outbound requests triggered by your file.
On iPhone:
- Open the group chat in WhatsApp.
- Tap the group name at the top → Export Chat.
- Select Without Media.
- Share the
.txtfile to yourself (via Files, Notes, email, etc.).
On Android:
- Open the group chat in WhatsApp.
- Tap the three-dot menu (⋮) → More → Export chat.
- Select Without Media.
- Save or share the
.txtfile.
- Go to stats-app-ecru.vercel.app.
- Drag and drop your
.txtfile onto the upload zone, or click Browse to select it. - Your dashboard loads instantly — no sign-in, no waiting.
- Click Export Wrapped in the top-right corner of the dashboard.
- A
vibecheck-export.png(1080×1920) will download directly to your device. - Share it on Instagram Stories, WhatsApp Status, or anywhere you like.
- Node.js 18+
- npm, yarn, or pnpm
# 1. Clone the repository
git clone https://github.com/Qwerty-coding/StatsApp.git
cd StatsApp
# 2. Install dependencies
npm install
# 3. Start the development server
npm run devOpen http://localhost:3000 in your browser.
npm run build
npm startStatsApp/
├── app/ # Next.js App Router pages and layouts
├── public/ # Static assets
├── types.ts # Shared TypeScript types
├── next.config.ts # Next.js configuration
└── tailwind.config.* # Tailwind CSS configuration
| Layer | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| UI | React 18 + Tailwind CSS |
| Charts | Recharts |
| Icons | Lucide React |
| Export | html-to-image |
| Parsing | Web Workers + RegEx |
| Deployment | Vercel |
- Multi-format WhatsApp export parsing
- Activity dashboard (8 stats)
- Leaderboard with progress bars
- Activity by Hour chart
- 1080×1920 PNG export
- Dark / Light mode
- Word Cloud (English + Hinglish stop-words)
- Telegram export support
- Network graph (who replies to whom)
- Hinglish sentiment analysis
Contributions are welcome. Please open an issue before submitting a pull request for significant changes.
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m 'Add your feature' - Push to the branch:
git push origin feature/your-feature - Open a Pull Request
VibeCheck is an independent, open-source tool built by a third-party developer. It is not affiliated with, authorized by, maintained by, sponsored by, or endorsed by WhatsApp LLC or Meta Platforms, Inc. in any way.
"WhatsApp" is a registered trademark of WhatsApp LLC. VibeCheck only processes .txt files that users have voluntarily exported from WhatsApp using WhatsApp's own built-in export functionality. No WhatsApp API is accessed, and no WhatsApp servers are contacted at any point.
Users are solely responsible for obtaining appropriate consent from all group members before uploading and analyzing a group chat export.
MIT © 2026 VibeCheck Contributors