SignetDrop

Privacy

Last updated: 10 September 2026

Your photos are opened, watermarked, resized and packed into a ZIP by the code running in this page. They are not uploaded, not copied to a server, and not seen by us or by anyone else. There is no upload code in this site to do it with.

What happens to a photo

  1. You drop a file in. The browser hands the page a reference to it on your disk.
  2. The page reads the first part of the file to find which way up it goes.
  3. The browser decodes it, the page draws it onto a canvas with your watermark, and the browser re-encodes it.
  4. The result is put into a ZIP that is built in this page's memory.
  5. You download that ZIP from your own machine.

At no point is there a request carrying the picture, because the code that would make one does not exist here.

What this page loads

WhatFromWhy
HTML, CSS, JavaScriptsignetdrop.tekiba.appThe tool itself. No library is fetched from anywhere else.
Google Analyticsgoogletagmanager.com, google-analytics.comThe three counters listed below, and nothing else. It never sees a file.
Paddlecdn.paddle.com, and Paddle's checkoutOnly after you press a buy button. It handles the payment; we never see a card number.
Licence servicelicense.tekiba.appTwo requests, described under "the paid version" below.

There are no fonts from another domain, no advertising, and no trackers beyond the counters named above.

What is counted

If analytics is switched on for this site, three events are sent. Each has a fixed shape, listed here in full:

EventCarries
batch_result how the batch ended — exactly one of ok, too_many_files, unsupported, error or empty — how many photos, and which output format
upgrade_clickwhich upgrade button was pressed
license_activatedwhether a key arrived from a purchase or was pasted in

No file name, no image size in pixels, no watermark text, no part of a picture. The code that builds these is /assets/analytics.js, and it is three small functions you can read.

Google Analytics also receives what any web request carries: an IP address (which it is asked to shorten), a rough location derived from it, the page address, the referring page, and your browser's user-agent string. It sets its own cookies.

EXIF, and what is removed

Photographs often carry EXIF: the camera, its serial number, the date, and sometimes the exact place the picture was taken.

By default, none of it survives. Output is drawn onto a canvas and re-encoded, and a canvas has nothing to write out about where a photo was taken or what took it. That is a consequence of how the tool works, not a filter that might miss a field.

To be exact about what the file does contain: browsers attach a colour profile to the images they encode — on Chromium, a standard sRGB block of a few hundred bytes. It says how the colours should be interpreted, it is identical in every file that browser makes, and it identifies nothing. It is left in because removing it would make the colours wrong on a wide-gamut screen. Everything that could describe you, your camera or your location is gone.

The paid version has an option to carry the original EXIF across. It is off unless you switch it on, and when it is on everything in the original EXIF goes across, including GPS. Only the rotation tag is changed, because the picture has already been turned the right way up.

It works from a JPEG to a JPEG and nowhere else. PNG, WebP and HEIC keep metadata in their own containers, which this tool neither reads nor writes; a photo that is not a JPEG, or that you save as something else, comes out with no EXIF whichever way the option is set. The interface says so, and the result tells you how many photos in a batch were in that position.

What is stored on your machine

KeyWhatWhen
tekiba.license.SIGNETDROPYour licence keyAfter you buy or paste one
tekiba.license.SIGNETDROP.revokedKey IDs known to be cancelledOnly if a refund has been processed
tekiba.license.SIGNETDROP.checked.…When the key was last checkedAt most monthly
signetdrop.verify.attemptedWhen the refund check was last attemptedAt most monthly, and only with a key
signetdrop.presetsYour saved settings (paid)When you save a preset

A preset holds settings only — a size, a colour, some text. It never holds a photo, a file name, or a logo image: when a preset is saved, the chosen logo's file name and the reference to it are removed first.

One item on this list does leave your machine. To find out whether a key has been refunded, the page sends the key itself to license.tekiba.app/verify — at most once a month, whether or not that request succeeds, and only if you have a key. Nothing else here is ever sent anywhere, and none of it has anything to do with your photos.

The paid version

Two things reach the network, and only these:

Deciding whether a key is valid does not use the network at all. The key carries a signature, and the page checks it against a public key built into the site, with the network switched off if you like. The monthly refund check described above is a separate thing: it is the only time the key leaves your browser, it is not needed for the paid version to work, and a failure to reach the service never locks anything.

How to check any of this

  1. Open your browser's developer tools and go to the Network tab.
  2. Drop in some photos and run a batch.
  3. No request appears carrying a photo, its name, or anything worked out from it. The only requests are this page's own files and the analytics events listed above.

The site also sends a Content-Security-Policy that the browser enforces, and it is worth saying precisely what that buys you. Its connect-src does not include this site, so no fetch, no XHR and no beacon from this page can reach our server — a future mistake in our code could not post your photo back to us, because the browser would refuse. form-action is 'none', so no form can submit anywhere. script-src allows no inline code at all, so every script running here is a file you can open and read.

What a policy cannot do is make leaking impossible in principle: images may be loaded from this origin, and a request for an image can carry data in its address. What the policy does is take away the destinations and make adding one a visible, deliberate change to a file in the repository. The headers are in the response; the file that sets them is _headers.

Cloudflare

The site is served by Cloudflare Pages, so Cloudflare handles the connection and can see the same things any host can: the address of the page requested and the IP address it was requested from. It does not see anything about your photos, for the same reason nothing else does.

Changes

If this page changes in a way that affects what leaves your browser, the date at the top changes and the change is described here. As of the date above, nothing derived from a photo has ever been transmitted, because the code to do so does not exist in this site.

Contact

[email protected]