npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-epub

v0.1.3

Published

n8n community node that converts HTML into an EPUB e-book. Zero runtime dependencies — builds the EPUB (ZIP + OPF + XHTML) in memory. Works on n8n Cloud.

Readme

n8n-nodes-epub

npm version License: MIT

An n8n community node that turns HTML → EPUB entirely in memory — zero runtime dependencies, so it's eligible for n8n Cloud verification.

Good fit for newsletter-to-Kindle pipelines, archiving articles to your e-reader, replacing Readbetter/Pocket-to-Kindle on your own infra.

Features

  • HTML to EPUB in a single node, no external binary or CLI required
  • Zero runtime dependencies — builds the ZIP container and OPF/XHTML templates from scratch
  • Works on n8n Cloud as well as self-hosted
  • Valid EPUB 3 output (with EPUB 2 toc.ncx compatibility)
  • Sensible default stylesheet
  • Strips scripts, iframes, and inline event handlers from the input HTML

Install

In the n8n UI: Settings → Community Nodes → Install, then enter n8n-nodes-epub.

Quick usage

Wire up:

  1. HTTP Request (or Gmail / whatever produces the article HTML)
  2. HTML to EPUB — set Title, pass the HTML through
  3. Gmail / Dropbox / Webhook to deliver the resulting .epub (e.g. to [email protected])

Newsletter-to-Kindle example

Gmail Trigger (label: to-kindle)
   └▶ Code (extract text/html MIME part)
       └▶ HTML to EPUB (title = email subject, HTML = decoded body)
           └▶ Gmail Send (to [email protected], attachment from binary property)

Node parameters

| Parameter | Description | |---|---| | Input Source | HTML String or Binary | | HTML | The raw HTML article (when Input Source = HTML String) | | Input Binary Property | Binary property name holding the HTML bytes (when Input Source = Binary) | | Title | Required. Used as book title, chapter heading, and TOC label. | | Output Binary Property | Property name to write the generated EPUB to. Defaults to data. |

Additional fields

| Field | Stored as | |---|---| | Author | dc:creator | | Description | dc:description | | File Name | Override output filename (default: slugified title) | | Identifier (UUID) | Stable dc:identifier. Random UUID if omitted. | | Language | BCP-47 tag, stored as dc:language. Default en. | | Publisher | dc:publisher |

How it works

  • The input HTML is lightly sanitized (scripts, iframes, inline handlers removed; void elements self-closed) and wrapped in a valid XHTML chapter.
  • Seven files are assembled in memory:
    • mimetype, META-INF/container.xml
    • OEBPS/content.opf, OEBPS/nav.xhtml, OEBPS/toc.ncx
    • OEBPS/chapter.xhtml, OEBPS/style.css
  • The files are packed into a ZIP archive using the STORE method (no DEFLATE, since no compression library is allowed for verified community nodes). A manual CRC32 is computed per entry.
  • mimetype is written first, uncompressed, as required by the EPUB spec.

Produced files typically range 10–100 KB and open cleanly in Apple Books, Kindle, Kobo, Calibre, and Readium.

Development

npm install
npm run lint
npm run build
npm run dev        # live-reload against a local n8n instance

Release (after committing changes):

npm run release

This uses @n8n/node-cli and the bundled GitHub Actions workflow (.github/workflows/publish.yml) to publish to npm with an attached provenance statement, satisfying the verified-node requirements introduced in May 2026.

License

MIT