Native ODT support for Standard Notes #4117
Unanswered
GitHubNewbie0
asked this question in
Suggestions
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
For users considering migration to Standard Notes from any environment where ODT is the working format — including European public sector users where ODT is the procurement standard — the absence of native .odt support in Standard Notes is a deterrent. ODT is the only ISO-standardized document format (ISO/IEC 26300). A privacy-first suite that can't open the open standard creates an awkward gap exactly where SN's values otherwise resonate strongest.
A user coming from another suite arrives with files going back years. They want to open them, edit them, and save them — not import them as Markdown and lose the formatting.
odf-kit (Apache 2.0, zero runtime dependencies, pure TypeScript) is a JavaScript library that covers all of that for ODT:
• Open existing .odt files
• Open .docx files (so users can bring their existing documents and save them as ODT going forward)
• Generate ODT programmatically — create new documents from data, fill templates, build reports
• Edit in the Super editor — Lexical handles the editing, odf-kit handles the file format
• Save valid .odt that round-trips cleanly through LibreOffice, OnlyOffice, Collabora, and MS Word
Output passes the official OASIS ODF validator without errors or warnings (CI-enforced on every push). Works entirely in the browser, no LibreOffice or pandoc runtime — fits SN's existing client-side privacy constraints.
For the Super editor specifically — built on Lexical (per the standardnotes/lexical fork) — the entry point is two lines:
ts
import { lexicalToOdt } from "odf-kit/lexical";
const json = editor.getEditorState().toJSON();
const bytes = await lexicalToOdt(json, { pageFormat: "A4" });
Try it yourself right now — a live converter that runs entirely in your browser. Paste a SerializedEditorState and save a working .odt: https://githubnewbie0.github.io/odf-kit/tools/lexical-to-odt.html
Worth mentioning: the library also covers ODS (the spreadsheet half of OpenDocument), with .xlsx import alongside it, so secure-spreadsheets could gain native ODS support through the same library, if that is of interest.
Putting this on the radar — no urgency, just signaling the path is short and the licensing is permissive.
Project: https://github.com/GitHubNewbie0/odf-kit npm: odf-kit
All reactions