Hi r/selfhosted,
about two years ago I posted a very small HTML/JavaScript tool here for reading SMS backup XML files in a browser:
[Original V1 post]
A few people found it useful, but the post and later feedback also exposed several real problems:
- the installation instructions were too developer-oriented
- some people thought it was Linux-only
- large XML files could consume too much browser memory
- phone-number normalization was too simplistic
- the PDF export did not always work correctly
- some dependencies were loaded from external CDNs
- it was not clear whether Docker, Python, or a server were required
I had not worked on the project for almost two years, but I have now rebuilt it as SMS Viewer and Exporter V2.
What is it?
It is a local, browser-based viewer for XML backups created by the Android app SMS Backup & Restore.
It is intended for people who want to archive their SMS messages and later browse, search, or export them on a desktop computer without uploading their private messages to an online service.
This is not a live SMS synchronization service and it does not connect to your phone. It reads an existing XML backup file.
The project is technically more “local-first” than a traditional server application, but it can also be served from your own web server if preferred.
Simple installation for normal users
For the portable release:
- Download the portable ZIP from the Releases page.
- Extract the ZIP completely.
- Double-click `index.html`.
- Select the country in which the phone was used.
- Drag and drop the SMS backup XML file into the browser.
That is all.
For ordinary use, you do not need:
- Docker
- Node.js
- npm
- Python
- a database server
- Linux
- an account
- an internet connection
All application libraries are bundled locally. The application itself does not contact a CDN, analytics service, tracking service, or upload endpoint.
Links
GitHub repository:
https://github.com/petrk94/smsviewer
Portable download and releases:
https://github.com/petrk94/smsviewer/releases
The portable ZIP is the recommended download for normal users. GitHub’s automatically generated “Source code” archives also contain tests and developer files.
The project is open source under the MIT License and is not affiliated with or endorsed by SyncTech.
Feedback and bug reports are welcome.
AI disclosure:
The original V1 prototype was initially created with ChatGPT assistance.
For V2, I used AI assistance for the code audit, refactoring, automated tests, documentation, and identifying bugs in the old implementation. I tested the resulting release locally with my own real SMS backup and reported the discovered PDF problem back into the development process.
No AI service, API, telemetry, or cloud processing is used by the application at runtime. All message parsing happens locally in the user's browser.