<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dev.to Newbie</title>
    <description>The latest articles on DEV Community by Dev.to Newbie (@devtonewbie0).</description>
    <link>https://dev.to/devtonewbie0</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3772836%2F865264e0-6cb9-43c7-95c3-2119703413f7.png</url>
      <title>DEV Community: Dev.to Newbie</title>
      <link>https://dev.to/devtonewbie0</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devtonewbie0"/>
    <language>en</language>
    <item>
      <title>I Built a TypeScript Library for Generating ODF Documents — Here's Why the JS Ecosystem Needed One</title>
      <dc:creator>Dev.to Newbie</dc:creator>
      <pubDate>Sat, 14 Feb 2026 15:36:49 +0000</pubDate>
      <link>https://dev.to/devtonewbie0/i-built-a-typescript-library-for-generating-odf-documents-heres-why-the-js-ecosystem-needed-one-180n</link>
      <guid>https://dev.to/devtonewbie0/i-built-a-typescript-library-for-generating-odf-documents-heres-why-the-js-ecosystem-needed-one-180n</guid>
      <description>&lt;p&gt;Update (March 2026): odf-kit is now at v0.4.0 with a template engine (loops, conditionals, dot notation), zero transitive dependencies (migrated from JSZip to fflate), and browser support — same API works client-side with no server required. 222 tests passing. See the GitHub repo for the latest.&lt;/p&gt;

&lt;p&gt;If you've ever needed to generate Word-compatible documents in Node.js, you've probably reached for docx or pdfkit. But what if your users need OpenDocument Format — the ISO standard used by LibreOffice, government agencies, and organizations that can't depend on proprietary formats?&lt;br&gt;
Until now, your options in JavaScript were basically: nothing.&lt;br&gt;
The only prior library, simple-odf, was abandoned in 2021. It only produced flat XML files (not proper .odt ZIP packages) and had no table support. Meanwhile, the Java ecosystem has the full-featured Apache ODF Toolkit, Python has odfpy, and C# has options too. JavaScript developers were left out.&lt;br&gt;
So I built odf-kit.&lt;br&gt;
What It Does&lt;br&gt;
odf-kit is a TypeScript library that generates valid .odt files — proper ZIP-packaged ODF documents that open cleanly in LibreOffice, Google Docs, and any ODF-compliant application. Single runtime dependency (JSZip), ESM-only, Node 22+.&lt;br&gt;
Here's what it takes to create a document:&lt;br&gt;
typescriptimport { OdtDocument } from "odf-kit";&lt;/p&gt;

&lt;p&gt;const doc = new OdtDocument();&lt;br&gt;
doc.setMetadata({ title: "Quarterly Report", creator: "odf-kit" });&lt;br&gt;
doc.addHeading("Summary", 1);&lt;br&gt;
doc.addParagraph("Generated with odf-kit.");&lt;br&gt;
doc.addTable([&lt;br&gt;
  ["Metric", "Q1", "Q2"],&lt;br&gt;
  ["Revenue", "$1.2M", "$1.5M"],&lt;br&gt;
], { columnWidths: ["5cm", "3cm", "3cm"], border: "0.5pt solid #000000" });&lt;/p&gt;

&lt;p&gt;const bytes = await doc.save();&lt;br&gt;
What's Supported (v0.1.0)&lt;/p&gt;

&lt;p&gt;Text formatting (bold, italic, underline, strikethrough, font size/family/color, subscript, superscript, highlight)&lt;br&gt;
Tables with column widths, cell borders, background colors, and cell merging&lt;br&gt;
Bullet and numbered lists with nesting up to 6 levels&lt;br&gt;
Page layout (size, margins, orientation)&lt;br&gt;
Headers and footers with page numbers&lt;br&gt;
Page breaks&lt;br&gt;
Hyperlinks and bookmarks&lt;br&gt;
Embedded images (PNG, JPEG, GIF, SVG, WebP, BMP, TIFF)&lt;br&gt;
Tab stops&lt;/p&gt;

&lt;p&gt;All covered by 102 tests, validated against LibreOffice 24.2.&lt;br&gt;
Who Is This For?&lt;br&gt;
Anyone building tools for organizations that need open formats — non-profits, government agencies, educational institutions, or any project where depending on Microsoft's .docx format isn't an option. ODF is an ISO standard (ISO/IEC 26300), and several countries mandate its use in public sector IT.&lt;br&gt;
If you've been generating .docx files simply because there was no ODF alternative in JavaScript, now there is.&lt;br&gt;
Links&lt;/p&gt;

&lt;p&gt;npm: npmjs.com/package/odf-kit&lt;br&gt;
GitHub: github.com/GitHubNewbie0/odf-kit&lt;br&gt;
Landing page: githubnewbie0.github.io/odf-kit&lt;br&gt;
License: Apache 2.0&lt;/p&gt;

&lt;p&gt;I'd love feedback — especially on the API design. The goal was to make the common case dead simple while keeping complex formatting available for those who need it.&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
