jamuny.editor

Local-firstYour text never leaves your browser. No upload, no account, no server.

What does “local-first” mean?

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:

  • It keeps working offline. Once the page has loaded, losing your connection changes nothing.
  • Your notes are saved on this device only. They come back when you return, but they do not follow you to your phone, and clearing your browser data for this site erases them for good. Export anything you need to keep.
  • Nothing to sign up for or delete. There is no account, because there is no server holding anything of yours.

Base64 Encoder and Decoder

Paste text to get Base64, or paste Base64 to get the text back. Unicode is handled properly: accented letters, Japanese, and emoji all survive the round trip, where tools built on the browser’s raw btoa call either throw or quietly corrupt them. Since nothing is transmitted, this is safe for the thing people most often decode — a JWT or an API token they would rather not paste into someone else’s server.

Questions

Why do other Base64 tools break on emoji or accents?

Because the browser’s built-in btoa only accepts Latin-1 characters. Anything outside that range has to be converted to UTF-8 bytes first, which is what happens here, so the round trip is lossless.

Is Base64 a form of encryption?

No, and this matters. It is a reversible encoding with no key, so anyone can decode it instantly. It exists to move binary data through text-only channels, not to protect anything.

Can I decode a JWT here?

You can decode its parts, though a JWT uses base64url, which swaps two characters and usually drops the padding. Paste a single segment at a time and add any missing = padding if the decode fails.