← All writing

Why everything we build runs on your device

Four products, no backend between them. Not a privacy stance so much as an engineering one — and it comes with real costs worth naming.

DhuRee Labs has four products and no server holding anyone’s data. Diagramium keeps your diagrams in your browser. StayAwake, Zonely and TargetSize each make either no network request at all or exactly one, to a named public API, for a named reason.

That is a deliberate constraint, and it is worth being honest about what it buys and what it costs.

“We don’t look at your data” is a promise. This is not.

Every product that collects your files can say it treats them carefully. You have no way to check, and neither, in practice, does the company — an over-broad log or a misconfigured bucket is the same outcome whether or not anyone intended it.

An extension that declares no host permissions cannot read the pages you visit. Not “does not” — cannot. The browser will not give it the access. An extension whose content security policy sets connect-src 'none' cannot make a network request, however badly its code might want to.

Those are properties a reviewer can verify from the package in about a minute, and we write our privacy policies so they point at exactly that. It moves the claim from something you take on trust to something you can check.

The costs, which are real

No sync. Your Diagramium work is in the browser you made it in. That is a genuine limitation and people ask about it regularly.

No crash reports. When something breaks, we find out because somebody tells us. That is why the “report a problem” line is prominent in every product, and why we ask for a description rather than the file.

Bigger packages. TargetSize bundles pdf.js and pdf-lib — about 2.4 MB — to read and write PDFs without a server. A cloud tool ships none of that to you.

Real limits. A browser tab has a memory ceiling. There are documents that a server-side tool would handle and this one refuses, and it says so rather than failing halfway.

Where we would break the rule

If a product genuinely needs a remote service, it gets one, disclosed specifically. Zonely sends coordinates to Open-Meteo when you switch the weather on, which is off by default. That is in its policy, named and scoped, because softening it into “may use third-party services” would be the beginning of the thing we are trying not to do.

The rule is not “never touch the network”. It is: if data leaves your device, you should be able to point at the sentence that says so.