Skip to content

About

Local-first WhatsApp chat archive viewer — PWA + offline Android APK. Imports .txt/.zip exports, on-device AI toolbox, no servers, no uploads.

Topics

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

105 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WA Archiver — read, explore and enrich your exported WhatsApp chats, privately and locally

Release Build APK License Platform Next.js PRs welcome Web app Translations

Turn your exported WhatsApp chats into a beautiful, private chat experience — with AI superpowers, voice notes, reactions, stats and an app lock.

No account · No cloud · No tracking · Your data never leaves your device

The full app, live on GitHub Pages — nothing to install, nothing to configure.

Web app · Features · Quick start · User guide · Android app · Host it yourself · Privacy · Policy · FAQ · Roadmap


🤔 What is this?

Three bullet points, honestly:

  • 📥 You export — In WhatsApp, open a chat → ⋮ → More → Export chat → with media. You get a .zip (or .txt).
  • 💬 You drop it in — WA Archiver reads the export and shows it in a familiar, polished chat interface: bubbles, replies, reactions, photos, voice notes, documents, locations.
  • 🔒 It stays yours — Everything is stored in a local SQLite database on your own device. No server, no login, no analytics. Optional AI features use your own key and talk straight to Google.

💡 No export at hand? Click Try demo chats on first launch and explore a fully-populated app in one second — no import needed.

📸 Screenshots

Chat list Chat view
Insights Dark mode

Chat list · chat view with voice notes & media · cross-chat Insights dashboard · dark mode.

📖 Step-by-step help — exporting from WhatsApp (Android/iOS), importing, troubleshooting and device migration live in the User guide.


✨ Features

Category Highlights
💬 Reading Authentic chat UI · day separators · replies · reactions · starred messages · unread divider
🖼️ Media Photos, videos, documents, locations, contact cards · lightbox viewer · media gallery grid · media ZIP export
🎙️ Voice notes Waveform player · speed control · floating mini-player across chats · on-device transcription (offline Whisper)
🔍 Finding Global search (Ctrl+K) · per-chat search with date/starred/regex filters · heat-dot activity calendar & date-range explorer · bookmarks · word cloud
📊 Understanding Cross-chat Insights dashboard · per-chat stats · Year in Review rewind · storage breakdown · "On this day" memories
✍️ Messaging Send messages, photos, audio, docs & polls · scheduled messages · simulated replies in demo chats
🤖 AI toolbox Translate · explain slang & context · ask AI about the chat · chat TL;DR · AI-generated wallpapers
🔐 Privacy Server-verified PIN App Lock (4–8 digits) · local SQLite storage · nothing phones home
📦 Getting data out Export to .txt / .zip / standalone offline .html · full JSON backup · print
📱 Experience Installable PWA · 17 themes with matched light/dark palettes · bubble styles & density · wallpapers studio · text size & font settings · keyboard shortcuts
🗒️ The full feature list (click to expand)
  • Import one or many exports (.zip with media, or .txt) — with preview before import
  • Telegram-style floating mini-player that keeps audio playing across chats
  • Unread badge + unread divider with "jump to first unread"
  • Timeline scrubber and jump-to-date popover
  • Chat folders, pins, archive and swipe actions
  • One-second hover quick-actions: reply, react, forward, star, copy
  • Long-press a message → Speak (text-to-speech), translate, explain
  • Scheduled messages — compose now, deliver later
  • Simulated replies in demo chats (AI or offline personas)
  • Message editing safety, message deletion, forward with multi-select
  • Word cloud per chat, cross-chat Insights dashboard
  • "On this day" memories
  • Backup reminders (gentle nudges, no nagging)
  • Data & storage dashboard — see exactly what each chat uses
  • Custom chat wallpapers (built-in gradients or AI-generated)
  • Adjustable text size and font family
  • Keyboard shortcuts + printable shortcut sheet

🌐 Use it without installing anything

The full app runs in your browser, free, thanks to GitHub Pages:

avithegod2010.github.io/WA-archiver/app

Same local-first behavior as the APK — your chats live in your browser's own storage and never touch a server. Installable as a PWA (share-target included), or self-host it: see docs/hosting.md (GitHub Pages · Vercel · any static host). Store-submission status (IzzyOnDroid ✅ / F-Droid roadmap) lives in docs/launch-checklist.md.

🚀 Quick start

Prerequisites: Node.js 20+ and Bun (npm/pnpm work too — the scripts are runner-agnostic).

# 1. Clone & install
git clone https://github.com/Avithegod2010/WA-archiver.git WA-archiver
cd wa-archiver
bun install

# 2. Create your env file
cp .env.example .env

# 3. Create the database
bun run db:push

# 4. Start the app
bun run dev

Open http://localhost:3000 → click Try demo chats to explore instantly. To use your own chats, export them from WhatsApp (⋮ → More → Export chat → with media) and drop the .zip into the import panel.

⚡ Don't want to run a server? Grab the Android APK — the entire app ships inside it and works fully offline.


📱 Android app (offline APK)

The whole app — UI, on-device SQLite, search, stats, lock, backups — is bundled into a single installable APK. No internet required, ever (AI tools are the only optional online bits).

📥 Download: Go to the Releases page →

Release What you get
Versioned (e.g. v1.0.1) Stable build for that release, APK attached as an asset
latest (rolling pre-release) Auto-built APK from the newest main commit, refreshed on every push

Then on your phone: open the APK → allow "install from unknown sources" when prompted → done. Voice-note transcription runs on the phone itself (on-device Whisper, one-time ~45 MB model download in Settings → AI) — it works in airplane mode.

Building it yourself
bun run build:capacitor   # static-exports the app into capacitor-web/
bunx cap sync android     # copies web assets + config into the Android shell
cd android && ./gradlew assembleDebug
# → android/app/build/outputs/apk/debug/app-debug.apk

CI does the same thing automatically — see .github/workflows/android-apk.yml.


🧠 AI features (optional)

The AI toolbox is bring-your-own-key: paste a free Gemini API key in Settings → AI and requests go directly from your device to Google — never through any intermediary server. No key? Everything else keeps working.

Tool What it does
Translate Any message, any language
Explain Slang, context, tone — handy for old chats
Ask AI Chat-grounded Q&A ("where did we decide on X?")
Summarize TL;DR of long chats
Wallpapers Generate a custom chat wallpaper

🔒 Privacy model

  • Chats, media and settings live in a local SQLite database (db/ on server installs, OPFS-persisted SQLite on the Android app).
  • Zero telemetry. The app makes exactly two kinds of network calls: the AI actions you explicitly trigger, and link previews — both optional.
  • App Lock is a 4–8 digit PIN verified server-side (your machine) with an httpOnly cookie session.
  • Security policy: see docs/SECURITY.md and docs/offline-architecture.md for the design decisions.

🧱 Tech stack

Layer Choice
Framework Next.js 16 (App Router) + TypeScript
UI Tailwind CSS 4 + shadcn/ui (New York) + Lucide icons
Database Prisma ORM + SQLite (server) · SQLite WASM/OPFS (device)
Android Capacitor shell, Gradle debug builds via GitHub Actions
AI Gemini (user key) — translate, explain, ask, summarize, TTS, ASR, wallpapers

🌿 Branches

Branch Purpose
main Release line — stable, tagged releases, APK builds
stable Mirror of the latest release for pinning
beta Active development — may be bumpy

🗺️ Roadmap

  • Personalization: 17 themes, bubble styles, wallpapers (v1.1)
  • Year in Review, date-range explorer, bookmarks (v1.1)
  • Custom accent color & appearance (auto/light/dark) (v1.1)
  • Media Hub: search, favorites, date-range filter, shared albums (v1.7)
  • Multi-language UI (i18n): English, हिन्दी, اردو, मराठी, தமிழ் (v1.6)
  • CSV export for chats & starred messages (v1.7)
  • Play Store App Bundle (.aab) + per-ABI APKs + in-app update checker (v1.7)
  • Year-in-review share cards (PNG) (v1.6)
  • Encrypted backups — optional passphrase (AES-GCM) on JSON backups (v1.8)
  • Smart collections: Media / Active this week / Biggest (v1.8)
  • Per-chat themes (17 themes, scoped to one chat) (v1.8)
  • Message editing / unsend with "edited" tags (v1.8)
  • Export round-trip: location, contact, poll, deleted + scheduled sends (v1.8.1)
  • Cloud-ready persistence: WebDAV / Google Drive / S3 sync, auto-push, snapshot history (all E2EE) (v1.8–1.8.1)
  • One-bundle multi-device transfer

❓ FAQ

Is my data uploaded anywhere? No. Imports are parsed on your machine and stored in a local database. The only optional network calls are AI features (your key → Google) and link previews.

Do I need a Gemini API key? No — it's optional. Without a key, everything except the AI toolbox works fully offline.

Is this affiliated with WhatsApp or Meta? No. WA Archiver is an independent, open-source tool that reads export files produced by WhatsApp. It is not endorsed by, affiliated with, or connected to WhatsApp LLC or Meta Platforms in any way. WhatsApp is a trademark of its respective owner.

Are the APK builds signed? Yes — every v* tag triggers a signed release APK in GitHub Actions (see Releases); pushes to main publish a rolling pre-release build.

Does it work on iPhone? Not as an app — iOS doesn't allow sideloading APKs. The PWA runs in any mobile browser, though, and the full Android APK works on any Android 8+ phone.


🤝 Contributing

Issues and PRs are welcome! For big changes, open an issue first so we can align on direction. Feature ideas live in the issue tracker.

🌍 Translations

The UI ships in English, हिन्दी, اردو, मराठी and தமிழ். Community translations are managed on Weblate — translate in the browser, no code needed. See docs/translations.md for the full workflow.

📄 License

MIT — free to use, modify and share.

About

Local-first WhatsApp chat archive viewer — PWA + offline Android APK. Imports .txt/.zip exports, on-device AI toolbox, no servers, no uploads.

Topics

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages