<- Back to projects

UNIT 03 · Case Study

KakaoTalk Viewer

Browser-only viewer for KakaoTalk export files with search, date navigation, and multi-platform parser support.

Preact TypeScript Vite Tailwind CSS Vitest
KakaoTalk Viewer screenshot

KakaoTalk Viewer opens exported KakaoTalk chat files in the browser and renders them like the real messenger — date dividers, multiline messages, join/leave notices, links — so a long backed-up conversation is actually readable. Everything happens client-side; the chat file never leaves your browser.

What it handles

  • Four export sources — auto-detects KakaoTalk .txt/.csv exports from Windows, macOS, Android, and iOS: Korean exports plus known English date and system-message patterns, with 12- and 24-hour time and CSV quoting
  • Navigation that scales — full-text search, per-person filtering, jump-to-date, and jump to the first or last message
  • “Which messages are mine?” — pick your own name and your side of the conversation lines up correctly
  • Long rooms stay smooth — messages render in a virtualized list (react-virtuoso), so only the ones on screen are mounted

Parsing is the real work

The interesting part isn’t the UI, it’s the parsers. Each platform exports a slightly different shape, so src/parser/** carries per-platform logic for those differences — and both src/parser/** and src/lib/** are held to 100% test coverage in CI, because a parser that’s right 95% of the time silently mangles the other 5% of someone’s chat history.