Skip to main content

Viewer usage

This page explains how the current app behaves once your archive is loaded.

Inbox​

The inbox is driven by inbox_index.json, not by full thread scans on every render.

That means the inbox can:

  • sort by most recent activity
  • show lightweight previews quickly
  • remain responsive even when the archive is large

Chat loading​

The chat view uses SQLite-backed pagination instead of loading every message at once.

The current behavior is designed around:

  • initial message windows
  • loading older context on scroll
  • loading focused context around search hits
  • keeping the visible message stable while more messages are inserted

Search is scoped to a single conversation and supports:

  • free text
  • URLs
  • from:
  • has:
  • before:
  • after:
  • time-style filters such as time:today

The search overlay shows total matches and paged results so large threads stay usable.

Media​

The chat and settings overlays can expose:

  • photos
  • videos
  • audio
  • reels
  • files
  • links

Media is intentionally displayed differently from plain text messages so the conversation is easier to scan.

Favourites​

Favourite messages are stored per thread and can be revisited through the favourites overlay even if the message is not currently loaded in the live chat window.

Themes and perspective​

Themes change the chat feel without changing the actual archive data.

Perspective switching is a viewing tool. It should affect how the thread is interpreted in the UI, but it should not rewrite the real conversation identity.

Export from the viewer​

The export overlay lets the user choose exactly which conversations to package. The exported copy should then rebuild only the data needed for those selected threads.

Local avatar overrides​

Some direct-message exports do not include a usable profile picture. The local profile-picture manager fills that gap by letting the user upload a replacement image stored inside the project assets.

What the viewer is optimised for​

  • browsing archive history comfortably
  • searching large threads quickly
  • creating smaller hosted copies
  • keeping runtime fast without keeping the original raw archive open all the time