https://github.com/franklioxygen/doff
Local-first, offline-ready diff workspace for text, images, documents, spreadsheets, and folders. doff runs entirely in your browser — no uploads, no accounts, no servers. Compare files privately and instantly.
https://github.com/franklioxygen/doff
diff diff-checker differential-privacy formatter offline offline-differ privacy tauri
Last synced: 25 days ago
JSON representation
Local-first, offline-ready diff workspace for text, images, documents, spreadsheets, and folders. doff runs entirely in your browser — no uploads, no accounts, no servers. Compare files privately and instantly.
- Host: GitHub
- URL: https://github.com/franklioxygen/doff
- Owner: franklioxygen
- Created: 2026-03-22T04:48:23.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-17T15:31:32.000Z (2 months ago)
- Last Synced: 2026-04-17T17:32:43.113Z (2 months ago)
- Topics: diff, diff-checker, differential-privacy, formatter, offline, offline-differ, privacy, tauri
- Language: TypeScript
- Homepage: https://doff-franklioxygen.vercel.app/
- Size: 5.09 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# doff
Local-first, offline-ready diff workspace for text, images, documents, spreadsheets, and folders.
doff runs entirely in your browser — no uploads, no accounts, no servers. Compare files privately and instantly.

## Features
- **Text diff** — side-by-side and unified views with intraline highlighting, powered by Monaco Editor.
- **Image compare** — pixel-level diffing with overlay, side-by-side, and slider modes.
- **Document diff** — compare PDF documents page by page.
- **Spreadsheet diff** — compare Excel (.xlsx) and CSV files cell by cell.
- **Folder diff** — compare directory structures and contents.
- **Offline-ready** — installable PWA that works without an internet connection.
- **Multi-language** — English, Spanish, French, German, Japanese, and Chinese.
- **Dark mode** — automatic or manual theme switching.
## Privacy
- No account and no cloud backend.
- All processing happens locally in your browser or desktop app.
- Files never leave your machine.
- The official Vercel-hosted live demo, including the PWA installed from that deployment, enables Google Analytics only on the production deployment to measure aggregate traffic.
- Demo purpose Google Analytics is not embedded in the app source code and is not included in desktop installers, Docker/self-hosted deployments, or local development builds.
## Getting Started
doff can be used in two ways: as a **standalone app** installed directly on your device, or as a **containerized service** deployed via Docker.
### Standalone App
Download the latest offline standalone package for your platform from the [Latest Release](https://github.com/franklioxygen/doff/releases/latest) page. These release assets are desktop installers that run locally on your device without Docker or a hosted service. You can also browse all published packages on [Releases](https://github.com/franklioxygen/doff/releases). Available for macOS, Windows, and Linux.
You can also visit the [Live Demo](https://doff-franklioxygen.vercel.app) and install it as a Progressive Web App from your browser.
Note: the official Vercel-hosted live demo enable Google Analytics only on the production deployment. Desktop installers **do not include** Google Analytics.
### Container Deployment (Docker)
```bash
docker run -d -p 5560:80 --name doff ghcr.io/franklioxygen/doff:latest
```
Or use Docker Compose:
```bash
docker compose up -d
```
Then open [http://localhost:5560](http://localhost:5560).
Docker and other self-hosted deployments **do not includ** Google Analytics.
### Build from Source
```bash
git clone https://github.com/franklioxygen/doff.git
cd doff
npm install
npm run dev
```
## Requirements
- **Standalone App**: Any modern browser (Chrome, Firefox, Safari, Edge)
- **Container Deployment**: Docker or Docker Compose
- **Development**: Node.js 20+
## License
MIT