0 matches
Local-firstYour text never leaves your browser. No upload, no account, no server.
Most online text tools send whatever you paste to a server, run the work there, and send a result back. Your words sit in someone else’s logs, backups and databases, and you have to trust a privacy policy.
Local-first means the opposite: the whole tool is downloaded to your browser and runs on your own device. Nothing you type is transmitted anywhere — not to us, not to anyone. There is no server that could receive it, which is a stronger guarantee than a promise not to look.
Three consequences worth knowing:
0 matches
Write a pattern, see every match highlighted in your text immediately, and inspect the capture groups for each one — numbered and named. A replacement field previews the result before you commit to it. Patterns run against a time limit, so a pattern that backtracks catastrophically reports the problem instead of freezing the page.
JavaScript’s, as implemented by your own browser. Lookbehind, named capture groups, and Unicode property escapes all work in current browsers. Perl or PCRE-only constructs will not.
Some patterns — typically nested quantifiers like (a+)+ against a long non-matching string — take exponential time. Matching runs in a background worker that is stopped after one second, so the page stays responsive instead of hanging.
Yes. Use $1, $2 for numbered groups and $<name> for named ones. The replacement preview updates live, and nothing is applied to your text until you choose to apply it.