Security & Privacy
Whitepaper
A technical breakdown of the Mojodocs Local-First Architecture, outlining how we achieve data sovereignty, zero-knowledge processing, and threat mitigation.
Executive Summary
Mojodocs operates on a "Local-First" paradigm. Unlike traditional SaaS applications where data is transmitted to a remote server for processing, Mojodocs delivers the processing engine (WebAssembly) to the user's device. This inversion of control ensures that sensitive user data never leaves the user's physical hardware, rendering remote data breaches technically impossible.
# System Architecture
The application is architected as a static Progressive Web App (PWA). It is served via a Content Delivery Network (CDN) but executes entirely within the client's browser sandbox.
We utilize WebAssembly (WASM) binaries compiled from high-performance C++/Rust libraries (e.g., FFmpeg, ImageMagick, Ghostscript). These binaries are downloaded once and cached. When a user selects a file, the browser passes a reference to the file directly to the WASM module within the browser's memory heap.
# Proof of No-Upload (Verification)
We believe trust should be verifiable. Any user can audit the network traffic of Mojodocs to verify that no file data is being transmitted.
- Open Mojodocs in Chrome/Firefox.
- Open Developer Tools (F12 or Cmd+Opt+I).
- Navigate to the Network tab.
- Disconnect your WiFi/Internet (Optional, to prove offline capability).
- Drag and drop a file into any tool (e.g., PDF Merger).
- Observe the Network tab.
# Threat Model & Mitigations
| Threat Vector | Risk Analysis & Mitigation |
|---|---|
| Man-in-the-Middle (MITM) | Risk: Interception of data in transit.Mitigation: Since files are not transmitted, there is no transit to intercept. The application code itself is delivered via HTTPS (TLS 1.3) with HSTS enabled. |
| Server Breach | Risk: Attacker gains access to backend database.Mitigation: Mojodocs has no database. We do not store user files, accounts, or logs. A compromise of our hosting provider (CDN) would only affect the static assets, not user data. |
| Cross-Site Scripting (XSS) | Risk: Malicious script injection.Mitigation: Strict Content Security Policy (CSP). No third-party ad networks. WASM runs in a separate memory space. |
# Data Lifecycle & Encryption
Data processed by Mojodocs follows an ephemeral lifecycle.
File is read into browser Blob or ArrayBuffer. It resides in the device's Random Access Memory (RAM).
The WASM engine processes the buffer in a sandboxed memory heap. The browser's security model prevents access to other system files.
Upon closing the tab or refreshing the page, the browser's garbage collector frees the memory allocation. The data is irretrievably lost.