Skip to content
documentflare
Tutorials

Install PDF Tools as an App: Offline Mode, Android Share and File Handlers

No store, no account: a two-click install, double-click to open a PDF, Android share target, and a full offline mode once you have visited the site online once.

Table of contents

A PDF toolbox that installs like a native app — desktop icon, dedicated window, files received straight from the operating system — without an app store or an account: that is what the PWA (Progressive Web App) format allows. Document Flare uses every part of it, including the rarest one: a fully working offline mode, after one online visit.

An app with no app store

A PWA is a website plus two pieces: a manifest (manifest.webmanifest), declaring the name, icons and standalone display — the app opens in its own window, no address bar — and a service worker, a script that sits between the app and the network. That worker makes everything else possible: install, file opening, offline.

The practical consequence: no store, no account, no third-party platform terms. Updates come from the site itself — and, as we will see, they are proposed, never forced.

Install in two clicks

  1. Open documentflare.com in Chrome or Edge, on desktop or Android.
  2. Click the install icon in the address bar — or, in the browser menu, “Install Document Flare” / “Add to Home screen”. On iOS, go through Safari: Share → “Add to Home Screen”.
  3. The app opens in its own window and joins the launcher, desktop or home screen, like any installed app.

An honest caveat: installation works everywhere, but the system integrations described next — direct file opening and share — belong to Chromium browsers. Safari installs the app without those handlers.

Open a PDF by double-clicking it

The manifest declares a file_handlers entry: action /?launch=open, for the application/pdf type and the .pdf extension. Once the app is installed under Chrome or Edge (version 102 or later, on desktop), right-clicking a PDF offers “Open with Document Flare” — and a double-click can make it the default handler.

The mechanics are entirely local: the browser exposes window.launchQueue; our LaunchQueueBridge reads the file handles, extracts the File objects and injects them into the workspace through an internal handoff store. The document is open, ready to be processed — it has transited through no server.

The manifest also declares a protocol handler for web+documentflare:: a compatible browser can associate those links with the app. A link like web+documentflare:merge-pdf opens the tool’s page directly — the slug is restricted to the catalogue’s identifier format, never an arbitrary path.

Receive a PDF from Android share

The manifest’s second handler, share_target: a multipart POST target at /share-target accepting application/pdf. In practice: from Android mail, scanner or file manager, “Share → Document Flare” drops the document into the app.

The path is defensive by construction. The service worker intercepts the POST — only if it is a navigation —, checks each file’s %PDF- signature, caps the share at 10 files and 100 MiB total, then places the files in a single-read buffer cache before redirecting to the workspace. The bridge reloads the files and the buffer is consumed: nothing persists after opening. Right after scanning, it is the ideal link — see our guide to scanning to PDF from mobile.

Offline after one online visit

The exact wording matters: Document Flare works offline after one online visit. On first load, the service worker precaches the whole application — 380 files, about 8.4 MiB: pre-rendered pages, code, icons, manifest. The precache proceeds file by file; a cut or a full quota leaves a “partial” state, recorded then automatically completed when the network returns.

After that, three strategies apply:

  • Navigations: network first, falling back to the cached page, then to the app shell — never a blank page.
  • App assets: served from cache, under a strict whitelist — no document byte can enter it.
  • Heavy models: Tesseract OCR (worker, WASM core, French language — the four other languages on demand) and semantic search (~115 MiB of ONNX weights) download once while online, then persist in a dedicated cache that survives updates. If you open those tools offline without the model, the app says so before any processing — no silent failure.

Two discreet signals complete the setup: a badge appears only when offline or on a partial precache, and when a new version is ready a banner offers “Reload” or “Later” — the new service worker waits for your gesture, it never takes over mid-session.

The air-gapped scenario, for real

The consequence: after an online session that fetched the app and the models you want, you can cut the network — airplane mode, isolated workstation, air-gapped environment. The catalog’s 52 local tools work, and so does the history. And this is verifiable rather than claimed: in developer tools, Network tab, tick “Offline”, then process a PDF — everything runs, and no request carries the document. The Application → Cache Storage tab shows both caches, df-app-* and df-models-v1. The full anatomy of what a PDF upload really sends is in our article where do your files really go.

One acknowledged exception: seven tools marked as an “ephemeral remote service” — Word/Excel/PowerPoint/HTML to PDF conversions and back, AI summary — send the document to an ephemeral service after explicit consent. They require a connection, by construction, and refuse to run without one.

Local history: in IndexedDB, wiped in one gesture

The workspace history lives in IndexedDB, on your device: metadata plus result bytes, capped at 20 entries and ~25 MiB of retained bytes — beyond that, the oldest entries lose their bytes while metadata stays. The “Clear space” button purges that history entirely — file names and bytes — along with loaded files and favorites. Only the preferences that disable history survive: they are privacy settings, not data.

Honest limits

  • One online visit is mandatory: nothing works offline from a cold start, and the precache is ~8.4 MiB of download.
  • iOS: installation works via Safari, but direct file opening, the share target and the protocol handler are not supported.
  • Remote tools: the seven conversions/summary tools stay out of reach without a connection.
  • Browser AI: local translation and summary rely on Chrome/Edge 138+ built-in models, managed by the browser — not by our cache.
  • Partial precache: after an interruption, the app stays usable online and completes its cache when the network returns — but offline is only guaranteed once the state is complete.

Going further

The pillar on PDF tools without upload details the local architecture; the article on local processing privacy formalizes the promise. To chain tools without re-uploading, see shareable recipes and batch processing. And if the stakes are professional secrecy, our verticals for lawyers, healthcare and HR apply these guarantees per trade.