No-upload paint by numbers: how to verify it yourself
Check what happens to your photo with tools already built into your browser. Inspect outgoing requests while you generate and edit a template, then try the same workflow offline. These checks let you verify local processing for yourself.
Check 1 — watch the network while it works
- Open your browser's developer tools (F12, or ⌘⌥I on a Mac) and choose the Network tab.
- Go to the editor, let it finish loading, then clear the request list.
- Load a photo and click Generate. Merge a few regions. Export the SVG.
- Keep All request types visible. Inspect each request's URL, query parameters, and Payload (request body), including analytics requests. Look for image data, file attachments, or encoded copies of the photo.
The expected result is no outgoing request containing your image. The Network Size column measures downloaded response data; small responses or an empty Fetch/XHR filter do not prove that nothing was uploaded. Inspect the outgoing data across all request types.
Static scripts or worker files may load when a feature is first used. Google Analytics may send page views and usage events. When home-page advertising is enabled, Google AdSense and its partners may also make advertising, measurement, and consent-related requests. Those requests are separate from image processing; inspect their contents instead of expecting an empty request list.
Check 2 — turn your network off
- Load the editor, generate one template and export it once, so every part of the app has loaded.
- Switch your network off — Network → Offline in developer tools, or just turn off Wi-Fi.
- Load a different photo and generate again. Merge some regions. Export the SVG.
Generating, editing and exporting should still work. This demonstrates that those steps can run locally. Offline operation alone does not establish what a page sends while connected, so use it together with the request inspection above.
Expected network requests, and what they are for
Use this list to understand the services used by the app. Exact hosts can vary with analytics and advertising configuration; check the requests your browser actually sends. The app does not include your photo in these requests.
| Request | What it is for | Sees your photo |
|---|---|---|
| paintbynumbers.build | The page itself, plus JavaScript, worker files, CSS, and icons. Some static files may load when a feature is first used. | No |
| fonts.googleapis.com, fonts.gstatic.com | Web fonts. | No |
| googletagmanager.com; google-analytics.com and its subdomains | Google Analytics scripts and collection requests for page views and usage events, such as generation and export actions. The app does not attach photos or image data to those events. | No |
| googlesyndication.com, doubleclick.net, and advertising or consent partners | When enabled, Google AdSense loads a home-page ad and may use cookies and device information for ad delivery and measurement. The ad placement is removed when you start a project. Removing it does not unload scripts already executed or erase cookies. Hosts vary by the ad and consent configuration. | The app does not send image data |
| amazon.com | Only if you click a paint-set link. These are affiliate links; nothing loads from Amazon unless you choose to follow one. | No |
Local image processing coexists with usage analytics and optional home-page advertising. See our privacy policy for cookies and advertising choices. Verify the requests during the workflow you use.
What actually happens to your photo
- Your browser's file picker hands the page a local file reference. Nothing is transferred anywhere.
- The file is decoded into a canvas and read as raw pixel data, in your tab's memory.
- Palette reduction, region detection, contour tracing, and number placement run in Web Workers — background threads inside your own browser, on your own processor.
- Merging and splitting regions recomputes the affected outlines locally.
- The SVG, PDF, and PNG files are assembled in the page and handed straight to your browser's download mechanism.
After you choose an image, the editor automatically saves one local project, including the original image, edited template and recent undo history, in this browser's IndexedDB. The home screen lets you resume it, download a project-file backup or delete it. Clearing this site's data can also remove the local project. You can turn off "Remember this project on this device" to stop new saves; use "Delete saved project" to remove an existing copy. Exported images and project files remain wherever you saved them on your device.
Why this is worth checking at all
A photo can contain personal details about your family, pets or home. Checking where processing happens helps you choose a tool based on observed behavior. These checks describe the workflow you inspected; they are not a guarantee about every version or every possible action on a site.
The processing model is the floor, not the reason to use this editor. The reasons are manual control over individual regions and true vector SVG export. See the full paint by numbers generator comparison.
Related guides
- Paint by numbers generator comparison — how this editor stacks up against PBNify and custom kit sites.
- Photo to paint by numbers SVG — export a true vector template for Cricut, lasers, and murals.
- Merge & split paint-by-numbers regions — manually clean up auto-generated regions.