Privacy & how we build
What “runs in the browser” does and does not mean
Calculator scripts on Privy Tools do not POST your GST amount, CTC, JWT, or PDF to a server I operate. That is the product. It is not “100% offline.” It is not “zero tracking.” Those phrases stop being true the moment ads or analytics can load.
What stays in the tab
The number you type into GST, salary, EMI, or word count is read by JavaScript in this page. It is not sent to Netlify as part of the calculation. JWT payload decode is the same idea. PDF merge uses pdf-lib in memory in the browser. You can read the file via View source on each tool. If I ever add a server-side calculator, that page will say so in the trust rail, not in a footer no one reads.
What still uses the network
The HTML, CSS, and JS have to load once. Fonts load from Google Fonts. If you accept the cookie banner, Google Analytics (G-0926V9FD8C) and Google AdSense may run. Those services see ordinary technical data: IP, user agent, pages. They do not receive the contents of tool fields from the calculator scripts. That distinction matters. “The site phoned home” and “your CTC left the device” are different sentences.
Documented exceptions, each on the tool’s trust rail:
- IFSC finder: lookup against an outside bank-branch directory. No account-number field.
- SIP chart: Chart.js from a file host. Numbers stay local.
- PDF merge and some other PDF tools: pdf-lib (and sometimes pdf.js) from a file host. File bytes stay in the tab.
- Markdown preview: parser/highlighter from a file host.
The compute log on a tool page is supposed to move when those hops happen. If it moves while you are only typing a GST amount, that is a bug. Tell me.
The one server I do run
The Share feedback form posts to a Netlify function. That function receives the type, the message you typed, and the page URL. It is origin-checked. It is not a calculator. Privacy details are on the privacy policy.
Worked example: GST amount
Type ₹10,000, 18%, intra-state. Arithmetic runs in gst-calculator.js. If you declined cookies, AdSense should not load. If you accepted, an ad request may fire. That request does not include ₹10,000 from the amount field.
Worked example: IFSC
Search HDFC0000240. The directory host sees that you queried that code. That is the point of a live directory. It does not see your account number because I refused to put a field for it.
What this note is for
Anyone who has been burned by a “privacy-first” pastebin should be able to read this and the about page and know the actual promise. Tool math stays in the tab. Ads and analytics only load if you allow them. A short list of library and directory exceptions is named on the page that uses them.