# Why IndieJSON exists

> A JSON editor that shows code and tree as one document, keeps every number and every duplicate name as written, and never uploads anything.

By turushan.

Published: 2026-09-03T00:00:00.000Z

Updated: 2026-09-18T20:01:31Z

Canonical: https://indiejson.com/blog/why-indiejson-exists/

IndieJSON does one job. You paste or open one JSON document, you edit it as source text or as a
tree, and you leave with valid JSON. Nothing you paste leaves your browser.

## What it does

The code view and the tree view show the same document. Select a value in the tree and its lines
light up in the code; move the caret in the code and the tree opens to that value. Every edit in
the tree, whether you rename a name, change a type, move an item, or delete a member, becomes one
small change to the text, so the rest of your formatting stays exactly as it was.

The status bar says whether the text is valid JSON. When it is not, it names the first error with
its line and column in plain words, and it offers a repair. The repair is a list: every change, its
position, its reason, the text before and after. Nothing is applied until you say so, and Undo
takes it back.

Search covers names and values. From any hit you can copy its JSON Pointer, its value, or the whole
subtree as written. Format and minify move whitespace and nothing else. Files open and download on
your device.

## Where the answers come from

Validation follows [RFC 8259](https://www.rfc-editor.org/rfc/rfc8259.html), the JSON standard, and
nothing else. The warnings rest on named sections of it, and each warning links its section:

- Section 4 says object names should be unique, because parsers that accept duplicates disagree on
  which value wins. IndieJSON keeps both and tells you.
- Section 6 names the integer range every common parser reads exactly, from -(2^53)+1 to (2^53)-1.
  A number outside it, or a decimal with more digits than a double holds, gets a warning that says
  what a double-based parser would read instead. The number itself is never changed.
- Section 8.1 covers the byte order mark, and section 8.2 covers unpaired surrogate escapes.

Copied pointers follow [RFC 6901](https://www.rfc-editor.org/rfc/rfc6901.html).

The verdict is about syntax and interoperability. It does not prove that the document fits what
your application expects; a schema check is a different tool.

## What it will never do

It will never upload your document. The editor runs in your browser, parses large files in a Web
Worker, and sends nothing anywhere. There is no account, no card, no premium plan, no share link,
no cloud save. Analytics is currently off, so no tracker receives your document.

It will never change your data on its own. A number keeps its digits. A duplicate name stays. An
escape stays. A repair is a proposal you read first.

The family's `/api/check` endpoint, which the `indie` command uses, validates text a caller sends on
purpose and keeps nothing. The page never calls it with what you paste.

Read [syntax validity and application data requirements](https://indiejson.com/#does-valid-json-mean-the-data-is-correct). Use [IndieJSON](https://indiejson.com/) to edit and validate one JSON document in your browser.

## Sources

- https://www.rfc-editor.org/rfc/rfc8259.html
- https://www.rfc-editor.org/rfc/rfc6901.html
- https://indiejson.com/
