submitted text retained by this service
0
hex characters of hash used as a counter key
32
lifetime of that counter
86,400s

The governing distinction

Two processing models, and why the answer differs

A single privacy answer for this site would be false, because the tools don't share a processing model. One set computes results in the browser from code delivered with the page. The other calls a language model, which can't happen locally, so the text has to travel.

Every tool page states which model applies before you paste anything, and a run allowance is the reliable tell: it exists to meter server cost, so a tool with one sends text, and a tool without one computes locally.

This page takes each model in turn, then two things that apply site-wide regardless of which tool you open: analytics, and the providers the service runs on.

Local processing

Local tools: the claim, and how to check it

When processing is local, the text you paste is held in the page and transformed by JavaScript on your own machine. No request carries it anywhere. Nothing is transmitted, so nothing is received, retained, logged or disclosed. This is a structural property of the tool, not a policy commitment that could quietly change.

The absence of a length cap and a run limit follows from the same fact: both exist to control server cost, and no server participates.

The useful part is that it's independently checkable, which few privacy claims are. Open your browser's network panel, run a local tool, and watch that no request is issued. A claim you can falsify yourself is worth more than one you can't.

Server processing

Server tools: the exact path a request takes

A server tool posts your text to this site's API endpoint, which validates the request shape, applies the rate limit described below, and forwards the text to Groq, which runs the model producing the output. The response returns through the same path and the request ends.

No stage of that chain writes your text to a database, a log or a cache under our control. Responses carry a no-store directive, keeping them out of browser and intermediary caches. Input must fall between 1 and 12,000 characters to be accepted.

Transmitted
The submitted text, the route path, the engine family it belongs to, and any optional instruction field the tool exposes.
Not transmitted
No identifier, credential, email or history, none of which exists in this service.
Retained afterwards
Nothing derived from the text; only the rate-limit counter, described next.
On failure
A generated request identifier and the error message go to the runtime log. The submitted text is not part of that record.

The single record

What the rate limiter stores, stated exactly

Capping AI runs at 5 per rolling 24 hours means distinguishing repeat requests from new ones. With no account system, the only available signal is the network address a request arrives on.

That address is never stored. It's hashed with SHA-256, and the first 32 hex characters of the digest become the key of an integer counter holding a count of runs only: no text, no address, no route, no output. The key expires after 86,400 seconds (24 hours), and nothing archives or extends it.

The honest qualification: a hash of an address is pseudonymous, not anonymous, since the same address yields the same key for as long as it lives. It's truncated, attached to nothing but an integer, and deletes itself within a day.

Measurement

Analytics, its scope, and its boundary

Google Analytics 4 loads on every page. It records page views, coarse geographic region and device category, and sets cookies so a returning session isn't counted as new.

The boundary matters more than the scope. Analytics observes page views only. Submitted text is never part of one: under local processing it never leaves your browser, and under server processing it travels in a separate request the analytics library can't see.

Google processes that measurement data under its own terms as the provider. The cookie policy identifies the specific cookies and how to block them, which every tool here tolerates without any loss of function.

The chain

The providers involved, and what each one holds

Naming each provider and what it actually touches is more useful than a generic statement that vendors are used, because the risk profile of each is different.

Vercel
Hosts the site and executes the API function. As with any host, its infrastructure terminates the connection itself, involving ordinary server-level request records outside this service's control.
Groq
Executes the model behind the server tools, so submitted text reaches Groq during a run. Its Services Agreement states it does not train on customer inputs or outputs without permission, and deletes customer data within 30 days of termination.
Upstash
Holds the rate-limit counter: a truncated hash as key, an integer as value, with an automatic 24 hour expiry.

Structural absences

What does not exist here, and why that matters

The strongest statements here describe things that are absent rather than protected. No authentication system, so no credential store and no session history. No mailing list, so no address book. No payment processing, so no card data, billing address or transaction record.

Nothing is sold or shared with advertisers or data brokers. That's not primarily a commitment: there's no corpus of user data here to be the subject of such a transaction. No age information is collected either, since no account or profile exists.

An absence is a stronger guarantee than a policy: a policy can be revised, while an absence has to be deliberately built before it can be violated.

Where this stops

The limits of what this page can tell you

This policy describes observable system behaviour, which is what it can speak to reliably. It can't make commitments on behalf of the providers listed above beyond what they publish themselves; their published terms are the authority on their own handling.

It also describes the service as built today. If a tool moved from local to server processing, this page and that tool's own page would both change, since a policy that no longer matches the code is a defect regardless of how it reads.

Contact

Raising a question or a data request

Questions about this policy, including requests concerning data held about you, go through the contact page. The substantive answer here is usually unusual: the only record is a truncated hash keyed to an integer, often already expired before a request could be made.

Where a question concerns data held by a provider rather than this service, that provider's own process is the route, and this page names each one so you can identify which applies.

FAQ

Privacy questions, answered precisely

All answered in full, nothing to click open.

Is submitted text uploaded?

Only for server tools. Local tools compute in the browser and transmit nothing. Each page states which model applies before you paste anything.

Is submitted text stored?

No. Text sent to a server tool is validated, forwarded, processed and returned. It's written to no database, log or cache under this service's control.

Is my IP address stored?

No. It's hashed with SHA-256, truncated to the first 32 hex characters, and only that string is used, as the key of a counter.

Is a hashed IP genuinely anonymous?

It's pseudonymous rather than anonymous, since the same address yields the same key while it exists. It's truncated, attached to nothing but an integer, and expires within 24 hours.

What does the counter contain?

An integer count of runs used. No text, no address, no route and no output.

How long does it persist?

86,400 seconds, or 24 hours. It expires automatically, and nothing archives or extends it.

How can I verify a tool is local?

Open your browser's network panel and run one. No request is issued, which makes the claim independently falsifiable.

Why does text reach Groq?

Groq executes the language model behind the rewriting, generating and analyzing tools, so text has to reach it for a run to produce output.

Does Groq train on submitted text?

Groq's Services Agreement states it does not train on customer inputs or outputs without permission, and deletes customer data within 30 days of termination.

Is there an account system?

No. There's no authentication anywhere on this site, so no credential store and no session history exist.

Is any of this data sold?

No. There's no corpus of user data here that could be the subject of such a transaction.

What is logged when a run fails?

A generated request identifier and the error message. Submitted text is not part of that record.

Does analytics observe submitted text?

No. It records page views only. Submitted text is never part of one, under either processing model.

What is the input size limit?

A server run accepts 1 to 12,000 characters. Local tools impose no cap, since nothing is transmitted.

Is this suitable for confidential or proprietary text?

Under local processing nothing leaves the device. Under server processing the text reaches this service and Groq, so apply whatever policy governs sending text to an outside AI provider.

Do the tools work with analytics blocked?

Yes, identically. No function on this site is gated behind analytics.

Which providers are involved?

Vercel hosts the site and runs the API function, Groq executes the model, and Upstash holds the rate-limit counter.

How do I make a data request?

Through the contact page. The only record is a truncated hash keyed to an integer, usually expired already.

Is submitted text used to improve these tools?

No. Nothing submitted is retained, so there's no material to review, label or learn from.

What happens to this page if the code changes?

It's rewritten. A policy that no longer matches the system it describes is a defect, whatever its wording.

The local tools transmit nothing, and you can confirm it.

Open the network panel and run one. No request is issued, and no allowance applies.

Browse the tools