giit Editors

Free online editors with a live preview - private, AI-ready, embeddable

One family of browser editors for the formats people write every day. Code on the left, the result on the right, nothing uploaded. Any AI can write into them with a link, and you can put any of them into your own website.

  • No sign-up, no ads
  • Your files stay in your browser
  • Any AI can write into them
  • Embed them in your website
  • English and German

The editors

Each editor is made for its format and works the same way as the others.

  • LaTeX Editor

    latex.giit.ch

    Write LaTeX and see the typeset pages as you type. Pictures, document settings, PDF export.

    ● Online
  • SVG Editor

    svg.giit.ch

    SVG as code and on a canvas: move, resize and recolor shapes, snap grid, export to PNG, JPG, WebP or React.

    ● Online
  • HTML Editor

    html.giit.ch

    HTML with a live preview of the page, pictures as files, edit text right in the preview, export as one file or ZIP.

    ● Online
  • Markdown Editor

    md.giit.ch

    Markdown with tables, task lists, footnotes and math, a readable preview and export to HTML or PDF.

    ● Online
  • JSON Editor

    json.giit.ch

    JSON as code and as a foldable tree: edit keys and values in the tree, check against a JSON Schema, convert to YAML, CSV or XML.

    ◌ In development
  • YAML Editor

    yaml.giit.ch

    YAML with the same data tree, comments and anchors kept, problems with their line, convert to JSON.

    ◌ In development
  • XML Editor

    xml.giit.ch

    XML with an element tree, XPath search, well-formedness check and conversion to JSON or YAML.

    ● Online
  • CSV Editor

    csv.giit.ch

    CSV as text and as a spreadsheet-like table, also for large files; export to XLSX, JSON, Markdown or HTML tables.

    ● Online
  • Typst Editor

    typst.giit.ch

    Typst with the real compiler in the browser: pages as you type, PDF with selectable text, pictures stored with the document.

    ◌ In development

What every editor does

Learn one, and you know them all.

Private by design

The editors are static pages. Your documents stay in your browser (local storage); nothing is sent to a server unless you set up your own.

My documents

Keep any number of documents in the browser: open, rename, duplicate, download and delete them, each with its own undo history.

Any AI can write with you

"AI Assistant" → "Copy prompt" gives ChatGPT, Claude, Gemini or Copilot everything they need. The AI answers with a link that opens its result in your editor - Undo takes it back.

Browser agents (WebMCP)

In browsers with WebMCP, AI agents get tools to read and change the open document directly; every change is an undo step.

AI status at a glance

A dot on the AI button shows whether an AI is connected: through your website, as a browser agent, or by links in this tab.

Edit in the preview

Click text in the preview and change it there; the code follows. Click anywhere else to jump to the code.

Save to your own server

A webhook sends every saved version to an address you choose, with a token - automatically or on Ctrl+S.

English or German

Add ?lang=de for a German interface; the choice is remembered. The AI prompt always stays in English.

Light, dark or automatic

Every editor follows your system or the theme you choose, and works on phones and tablets.

Use an editor in your own website

All editors speak the same protocol. Replace latex with svg, html, md, json, yaml, xml, csv or typst - the messages are the same, only their prefix changes (latexeditor:, svgeditor: …).

Put the editor into your page

An iframe is enough. ?embed=1 shows the reduced view with a Save button, ?save=0 hides it when your page has its own, ?lang=de shows the German interface.

<iframe id="ed" src="https://latex.giit.ch/?embed=1&lang=de"
        allow="clipboard-write" style="width:100%;height:80vh;border:0"></iframe>

Load your document, receive changes and saves

The editor says it is ready, your page sends the document, and the editor reports real edits and every Save. Check the origin of every message.

const ED = 'https://latex.giit.ch', ed = document.getElementById('ed');
addEventListener('message', e => {
  if (e.origin !== ED || e.source !== ed.contentWindow) return;
  const m = e.data;
  if (m.type === 'latexeditor:ready')
    ed.contentWindow.postMessage({ type: 'latexeditor:load', name: 'Offer', content: myText }, ED);
  if (m.type === 'latexeditor:change') markUnsaved();
  if (m.type === 'latexeditor:save') saveOnYourServer(m.content, m.assets);
});

Or open it in a window of its own

The full editor in its own window talks to window.opener in exactly the same way - and links from an AI reach it there.

const win = window.open('https://latex.giit.ch/?embed=window&lang=de', 'latexeditor-17');

Let an AI deliver straight to your server

Hand the editor your rules, an https address on your own site and one key for this editor session. "Copy prompt" then tells the AI to POST its result there; your page opens it in the editor. Keep the key valid only while the editor is open.

ed.contentWindow.postMessage({ type: 'latexeditor:load', name: 'Offer', content: myText,
  ai: { label: 'My Admin', prompt: 'Keep the placeholders.',
        endpoint: 'https://your-site.com/api/ai-result', key: sessionKey } }, ED);

All messages

DirectionMessageWhat it means
editor → pagereadyThe editor can take a document.
page → editorload {name, content, assets?, context?, hook?, ai?}Open your document (with pictures, where the format has them).
editor → pageloaded {id, name}Your document is open; remember its id.
editor → pagechange {id, name, content}A real edit (not the load).
editor → pagesave {id, name, content, assets, updated}Save / Ctrl+S, or the answer to get.
page → editorget · saveAsk for the current state · press Save.
editor → pageclosing {id, name, content}The own window closes with unsaved changes.
editor → pagereload {id, unsaved}F5 / Ctrl+R inside your page - you decide.
page → editorai {label, prompt, endpoint, key} · ai {clear}AI through your server, one key per session.
editor → pagekey-request {reason: "missing"}The session has no key yet.

The full description, including the webhook and every field, is in each editor's llms.txt and in llms-full.txt.

Questions

Are the editors really free?

Yes. No sign-up, no ads, no limits on documents.

Is my document uploaded anywhere?

No. The editors run in your browser and keep documents in its storage. Only if you set up a webhook (or a website embeds the editor) does a saved version go to that server.

Which AI can I use?

Any AI - ChatGPT, Claude, Gemini, Copilot or the AI in your coding tool. Copy the prompt, say what you want, and click the link the AI answers with.

Can I use an editor on my own website?

Yes. Embed it with an iframe or open it in its own window and exchange documents with postMessage, or let it send saved versions to your server with a webhook.

How do I get the German interface?

Add ?lang=de to the address. The editor remembers it; ?lang=en switches back. The prompt for the AI stays English.

Who makes the editors?

Grünwald Innovation in Neuhausen am Rheinfall, Switzerland.