The browser can be the workbench.
The File API lets a page read files that a person selects through a file input or drag and drop. That mechanism does not require an upload. A page can also build an object URL for a selected file and use it for a preview. Long-lived tools should revoke object URLs when they no longer need them.[2]
SVG Spark applies that model to ten small utilities. Its public pages say processing stays in the browser. The collection includes vector conversion, PDF splitting and merging, JSON conversion, regular-expression inspection, SQL formatting, and contrast testing.[1]
"Runs in your browser" names a design. It does not prove the current build.
Test one output you can calculate.
We exercised SVG Spark's contrast checker with white and black. The page returned 21.00:1 and marked all four displayed WCAG levels as passing. A separate calculation with the WCAG relative-luminance formula also returned 21.00:1. This is one narrow functional check, not a review of all ten utilities.
The initial page load requested same-origin CSS, JavaScript, and the favicon. No cross-origin resource appeared in the browser's performance entries during that check. We did not upload a private file, inspect every code path, or prove that later actions never open a network request.
Keep egress visible.
A privacy line in the footer can go stale while the JavaScript changes. For a sensitive file, open the network panel before selection. Clear the log, process a disposable fixture, export the result, and inspect every request. Repeat after a deploy or dependency change.
Content Security Policy can narrow which scripts and resources a site loads. MDN recommends a strict policy based on nonces or hashes and advises testing with a report-only policy before enforcement. The SVG Spark responses we fetched did not include a Content-Security-Policy header. That absence does not show an upload. It removes one useful browser-enforced boundary.[3]
Use throwaway input first.
Start with a fixture that contains no customer data, credentials, internal filenames, or unpublished work. Confirm the transform. Inspect the network. Then decide whether the real input belongs in that page. A local utility earns trust per build and per route, not once for the whole domain.