Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Shahrukh Khan says he built Toolspace as a collection of 272 browser tools that process files on a user’s device rather than uploading them to a backend. The approach can reduce the need to trust a service with file retention, but it is not a blanket privacy guarantee: the site’s live behavior and network traffic have not been independently verified. Khan’s account, published September 29, 2026, describes the architecture, implementation choices, and practical limits.

What “no backend” means in Khan’s design

Khan says he started with a PDF compressor after noticing that many free online file tools he encountered followed an upload-process-download pattern. His alternative is to run the operation in the browser, so the file contents do not need to be sent to a server for processing. As he puts it, “You don’t have to trust anything if the file never leaves your machine.” That is an architectural thesis, not proof that every part of a deployed site has been audited or that no other data is transmitted.

The author reports that the project grew into 272 tools across PDFs, images, video, audio, converters, calculators, writing, and developer utilities. That is Khan’s stated count in the article, not an independently checked current inventory. The source does not establish whether Toolspace is currently available or whether its present-day tool count or behavior remains the same.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How the browser-side stack fits together

The article describes static tool pages that load JavaScript and the relevant WebAssembly or browser-side library. Web Workers handle heavy operations away from the main interface thread; Canvas APIs, including OffscreenCanvas, are used for image work. A service worker is described as caching WebAssembly binaries after an initial load.

Workload Components Khan names Role described in the article
Video and audio ffmpeg.wasm Runs media conversion in the browser; the author describes reusing a loaded FFmpeg instance.
PDF creation and merging pdf-lib Builds a new PDF and copies pages into it.
PDF rendering pdf.js Renders PDFs in the browser.
HEIC decoding libheif-js Supports decoding HEIC images.
Image operations Canvas API and OffscreenCanvas Performs image work using browser graphics APIs.

These are implementation details reported by Khan; the article does not constitute an independent code review.

What the examples show

HEIC-to-JPG conversion

Khan’s example loads FFmpeg once for reuse, writes the input bytes into FFmpeg’s virtual in-memory filesystem, runs a conversion, reads the resulting file, and removes the temporary input and output entries. That cleanup matters because virtual filesystem entries occupy memory during processing. The example illustrates a lifecycle; it should not be read as a tested benchmark or a guarantee about every deployed conversion path.

Merging PDFs

For PDF merging, the described process loads each source document, copies its pages into a new PDF, then saves the combined document. Khan notes that password-protected PDFs should produce a clear failure rather than silently yielding broken output.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Where local processing helps—and where it does not

When a file can be processed entirely on-device, it avoids sending that file to a processing server and reduces dependence on that server’s file-retention practices. That is a meaningful privacy property, but it does not establish that a particular site has no analytics, makes no other network requests, or has been audited. The article does not provide a systematic comparison of other services, so it cannot support a claim that all server-side tools retain uploads or that all browser tools are private.

The trade-off is that the user’s browser and device become the processing environment. Khan identifies memory limits, substantial initial downloads for media tools, reduced performance when shared memory is unavailable, and mobile battery use or heat as constraints. Local execution shifts where computation happens; it does not remove the computation or its resource costs.

Performance figures are author-reported estimates

Khan gives several figures to illustrate the costs, but the article does not provide a reproducible test setup. Treat them as the author’s estimates, not general benchmarks:

  • About 30 MB gzipped: the approximate size Khan reports for the multi-threaded ffmpeg.wasm build.
  • Three to eight seconds: Khan’s reported first-visit load interval for a video tool; it is not a result established across devices or connection speeds.
  • Approximately 500 MB: the browser-memory example Khan gives for a “decent desktop.” He says iOS Safari caps lower, but does not supply a test method or a precise iOS limit.

Why threaded FFmpeg can fall back

The article says multi-threaded FFmpeg requires SharedArrayBuffer, which in turn requires cross-origin isolation headers. Khan names Cross-Origin-Opener-Policy: same-origin and Cross-Origin-Embedder-Policy: require-corp. According to his description, when the necessary conditions are unavailable, the implementation falls back to single-threaded processing. Some in-app browsers may not provide SharedArrayBuffer support, so a tool that works in a full browser may run more slowly or differently inside an embedded webview.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What developers can take from the approach

  • Choose the execution location intentionally. Client-side processing can keep file contents on the device, while server-side processing can draw on server capacity. Either approach still requires a clear account of what data is transmitted and how it is handled.
  • Design for device constraints. Large inputs and memory-intensive formats can exceed browser or device limits; the article’s desktop example should not be treated as a universal threshold.
  • Account for asset loading. Media tools may require a large initial WebAssembly download. Khan describes service-worker caching to reduce repeat downloads, not to eliminate the first-load cost.
  • Handle capability differences. SharedArrayBuffer availability and cross-origin isolation affect whether threaded execution is possible; a fallback path and clear error handling are important.
  • Clean up temporary data. The FFmpeg example removes virtual filesystem entries after conversion, limiting lingering in-memory files within that processing flow.

For Khan, the central engineering decision is to make the browser do work that is often assigned to a server. The benefit is less dependence on uploading a file for the operation; the cost is that memory, CPU, download time, and battery are bounded by the user’s device.

Read Shahrukh Khan’s DEV Community article, published September 29, 2026.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.