A privacy-first web dashboard for reviewing communication exports that an account owner willingly provides. The app runs mostly in the browser so uploads stay local, while still supporting deeper analytics, evidence-backed summaries, and optional AI-assisted review.
React Vite Local Parsing Evidence AI Review
- GitHub for source control, issues, and Actions
- React + Vite for the dashboard UI
- Firebase Hosting for a Google-hosted static deploy
- Optional Cloud Run service later for PDF generation, auth, or secured report sharing
- Lowest risk: export files can stay on the user device
- Lowest cost: static hosting is usually enough for the first release
- Easy to grow: add Cloud Run only when a browser-only workflow becomes limiting
- Show a startup selector for
SnapchatorFacebookbefore any workspace loads. - Parse supported JSON, CSV, HTML, and TXT files locally with upload/file provenance.
- Normalize useful rows into account, chat, contact, location, search, login, post/reaction/group/event, and media-style events.
- Build lightweight thread/contact indexes on load, then run deeper AI organization only on a selected thread.
- Support multiple uploads in one workspace to enable cross-upload comparison.
- Browse full contact threads in a chat-first layout with manual local grouping labels.
- Search custom keywords or phrases across all parsed text.
- Import either zip exports or extracted export folders, with folder mode skipping media files.
- Load a Python-preprocessed cache JSON for very large exports.
- Export normalized events, contacts, keyword matches, and a structured workspace report.
- Run optional browser-side AI review using Gemini or OpenAI with a user-provided API key.
- Executive overview
- Upload and account overview
- Timeline explorer
- Hourly and weekday activity views
- Communication patterns
- Entity extraction
- Repeated phrase and tone classification
- Deterministic findings and notable periods
- Evidence snippets
- Optional AI review
- Snapchat: saved chats, search, login/device, location, memories, and related export files.
- Facebook: profile information, Messenger inbox, friends/followers, search history, security/login, comments, reactions, posts, groups, events, location/check-ins, and media metadata.
Support these import paths first:
- Full
My Dataexport - Memories-only export
Keep these fields first:
- timestamps
- usernames and display names
- chat and snap metadata
- saved chat history
- location points
- search history
- login history and device changes
- memories metadata and optional media references
Discard or ignore these by default:
- Bitmoji data
- support history
- shop and purchase history
- cosmetic profile metadata
- duplicate previews and wrapper files
npm install
npm run devnpm run buildFor very large extracted exports, preprocess the folder once with Python and then load the generated JSON cache in the dashboard with Load Python cache.
python scripts/preprocess_snapchat_export.py "C:\path\to\extracted\snapchat-export"Default output:
%USERPROFILE%\Desktop\snapchat_export_cache.json
That path avoids reparsing the raw export in the browser on every refresh.
If you want a fast local-only Facebook chat viewer, run the exporter script on an extracted Facebook data folder. It writes a static HTML file to your Desktop with a thread list, readable message cards, and TXT download buttons.
python scripts/export_facebook_chat_viewer.py "C:\path\to\extracted\facebook-export"Default output:
%USERPROFILE%\Desktop\facebook_chat_viewer.html
%USERPROFILE%\Desktop\facebook_chat_viewer.json
The page opens offline in your browser and keeps the chat text separated by sender, timestamp, and message body.
This project is set up for free static hosting on GitHub Pages using GitHub Actions.
- Create a GitHub repo and push this project to the
mainbranch. - In GitHub, open
Settings->Pages. - Under
Build and deployment, chooseGitHub Actions. - Push to
mainand wait for theDeploy to GitHub Pagesworkflow to finish. - Your dashboard will be published at
https://<your-github-username>.github.io/<repo-name>/.
The workflow file is already included at .github/workflows/deploy-pages.yml.
- Create a Firebase project in Google Cloud.
- Install the CLI with
npm install -g firebase-tools. - Run
firebase login. - Run
firebase init hostingand setdistas the public directory. - Build the app with
npm run build. - Deploy with
firebase deploy.
The repo already includes a starter firebase.json for SPA rewrites.
The refined prompt used for the Facebook viewer extension is in docs/facebook-viewer-codex-prompt.md.
- Add downloadable PDF reports
- Add richer filtering and saved workspaces
- Add stronger Snapchat-specific parsers for known export file structures
- Move optional AI requests behind a backend if you need stronger key isolation