New: draw a network as text and trace a packet through it hop by hop.Open the routing simulator

Privacy

Network engineers handle address plans, device configurations and secrets that must not leave the building. NetKit is built so they do not have to.

Last updated 21 October 2026. The advertising section and the caveats below are the change in this revision; the previous version said that the site made no network request at all, because until then it did not.

The short version

  • Your input stays in this tab. Every calculation runs in the browser, and nothing you type, paste or generate is uploaded to a NetKit server — there is no NetKit server to upload it to.
  • No accounts and no telemetry of ours. There is no sign-in, no backend store, and no analytics service that NetKit operates. We do not know who visits or what they calculated.
  • One third-party script: advertising. Each page loads Google AdSense so the site can stay free. It is the only third-party code anywhere on the site, it is described in full in the next section, and the calculators do not use it.
  • Shareable links use the URL fragment. A tool's input lives after the #, which browsers never include in an HTTP request — so a link you paste to a colleague does not leak the address plan to a server.
  • The tools work offline. A service worker caches every page and asset, so the calculators keep working with no network at all. The ad slot is the one part that cannot: offline, it simply stays empty.

Advertising

This site is free and advertising pays for it. Ads are served by Google. There is no other third-party script, no other tracker, and no server of ours anywhere in the request path.

  • What Google collects. To serve and measure an ad, Google receives the page URL, your IP address, browser and device details, and identifiers it stores in cookies or local storage. That collection is Google’s, under Google’s own privacy policy, and it is not reported back to NetKit. We never see it, and there is no dashboard here that could.
  • Your input is not handed to it. The tools pass nothing you typed, pasted or generated to the ad script, and the script has no API through which to ask for it. The obvious caveat is stated rather than omitted, because this page does not omit caveats: a script running on the page is technically capable of reading the page, and Google’s code is not ours to audit. What NetKit does is never hand it your data — which is also why the calculators keep your input out of the URL, out of storage and out of every request they make.
  • Consent, in the EEA, the UK and Switzerland. No non-essential cookie is set and no personalised advertising is served before you consent. Consent is requested through a Google-certified consent management platform, and it can be changed or withdrawn at any time from the link on the consent message. With consent withheld, ads are either not served or served non-personalised.
  • Turning personalised advertising off. Google’s ad settings cover ads served by Google across the sites you visit; the industry opt-out at optout.aboutads.info covers participating ad networks. Both are third-party pages, not ours, and neither is needed to use this site.
  • Blocking ads. If you run an ad blocker, nothing is gated and no feature is withheld. Every tool behaves exactly as it does with ads visible.

Which tools contact the network

Every tool declares whether its own code uses the network, and the build fails if the declaration and the implementation disagree. The advertising request each page makes is not part of this count — it is not a tool, and no tool calls it. Current state:

  • Runs locally24 tools make no request whatsoever.
  • Sends a requestNo tool currently needs the network.

The iOS app

  • Same policy. NetSmith — the iOS and iPadOS app, built on the same kernel as the tools on this site — follows everything on this page. There is no account, no sign-in and no server-side storage.
  • No analytics or advertising SDKs. The app ships with no third-party code — the website’s advertising script is not in it. Nothing you type leaves the device.
  • Purchases. NetSmith Pro is a one-time in-app purchase processed by Apple. We receive only an anonymous entitlement check from StoreKit — never your name, email, or payment details.
  • On-device storage. Your preferences and purchase state are stored locally and are removed when you delete the app.
  • Exports. Files you export are written to a destination you pick (Share sheet, Files, clipboard). Nothing is uploaded.
  • Network details and the widget. Your own addresses, subnet mask, DNS servers, Wi-Fi network name and public IP are read on the device. The home-screen and lock-screen widgets read the same values through an Apple App Group container that only NetSmith and its widget extension can see.
  • Location permission (optional). iOS only reveals the current Wi-Fi network name to an app that has been granted location access, so NetSmith asks for “While Using the App” when you switch the Wi-Fi label on. Your location is never read, stored or transmitted — the permission is used for nothing else, and denying it leaves every other feature working.
  • Camera permission (optional). The Asset & Serial Scanner uses the camera while you are scanning a barcode on a device label. Each frame is read on the device and thrown away immediately — no photo is ever saved, uploaded or shared, and the value you scan stays on your device. The camera is used for nothing else, and declining it leaves every other feature working.
  • Public IP lookup (optional, off by default). If you turn this on, the app makes a single request to a public IP-echo service to learn your external address. That service sees your IP address, as it would for any web request; nothing else is sent and the result is never stored. With the switch off, the app makes no request of its own — the only other socket is the diagnostic below, and that one runs only while you are looking at it.
  • Ping & Traceroute (Pro). When you type a host and start a run, the app opens a socket and sends ICMP echo requests — or TTL-limited probes, one per hop — to that address and to nothing else. The packets carry an ICMP header and a sequence number; there is no account, identifier or payload attached. Replies are matched on the device, shown on screen and never transmitted. Because ICMP needs a raw socket, iOS asks for Local Network access the first time the target is a private address (a router or switch on your own network). Declining it makes those probes time out, and every other tool keeps working; public addresses do not trigger the prompt at all.
  • Contact. Privacy questions: alex.xu@ccie13192.com.

How the claim is enforced

“Local-first” is easy to write on a landing page. Here it is a build invariant, checked by scripts/check-invariants.mjs on every commit:

  • The kernel (@netkit/core) is scanned for network APIs, DOM access and any import outside its own directory. Any hit fails the build.
  • Each tool's source is scanned for fetch, XMLHttpRequest, WebSocket, EventSource and friends. Finding one in a tool that declares network: false fails the build.
  • A tool that declares network: true but makes no request is reported as well, so the badges cannot drift in either direction.

What the build does not enforce any more is the site-level Content-Security-Policy. It used to permit connections to this origin only, which made “nothing is sent” a rule the browser enforced rather than a sentence on a page; it now also permits Google’s advertising domains, because an ad cannot be fetched otherwise. That policy is in apps/web/public/_headers and the reason for each opened directive is written next to it. The per-tool guarantee above is unchanged and is still the one CI enforces.

What NetKit cannot promise

Your browser, your extensions and your network are outside our control. If you are on a managed device, assume anything you type could be logged locally. What we can still promise is narrower than it was before the site carried advertising: the calculators send nothing, and you can watch them not do it by opening a tool page, disconnecting, and using it — every function of every tool keeps working. The ad slot is the one part that cannot work offline, which is also the honest demonstration of which part talks to the network.

Not engineering advice

The tools are provided to save time and reduce arithmetic mistakes. Generated configuration, in particular, must be validated on a lab device before it reaches production. Where a vendor-specific detail is not confirmed on hardware, the interface says so rather than presenting it as fact.