Introducing htomd

Markdown and metadata from messy HTML, in pure Python with no runtime dependencies.

Jamie Davenport

I’ve released htomd, a small Python library for extracting Markdown and metadata from HTML. Give it a page and it tries to find the useful content, leaving the surrounding clutter behind.

It works best with articles and documentation. It runs locally, needs Python 3.12 or newer, and has no runtime dependencies. You supply the HTML; htomd handles extraction.

python -m pip install htomd

The Python API has two entry points: convert() returns Markdown; extract() adds metadata and diagnostics.

import htomd

html = "<article><h1>Hello</h1><p>Readable text.</p></article>"
print(htomd.convert(html))

document = htomd.extract(html, url="https://example.com/article")
print(document.metadata.title)

Metadata includes the title, author, description, language, publication time, and canonical URL when available. Diagnostics report which extraction strategy was used.

There’s also a command line interface for pipelines:

htomd convert < page.html > page.md
htomd extract < page.html > page.json

Converting 115 saved pages took 1.260 seconds on an Apple M5 Max in the benchmark.

One use case is preparing web content for LLMs. Navigation, newsletter forms, and other clutter take up context without helping the model understand the article. htomd tries to keep the useful content and its structure, with metadata to track the source.

In this example, htomd and trafilatura both remove the navigation and footer. htomd also preserves the article’s links and hero image. Neither includes the title in the Markdown, so extraction quality still needs checking against the original page.

htomd

3,168 characters
![Tailwind CSS and Shopify](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fog-image.103kpqahmns2b.jpg&w=3840&q=75)

Big one today — Tailwind is joining Shopify.

When I started working on Tailwind over nine years ago, my only goal was to create something that would make it easier to build beautiful interfaces for my own projects. Fast-forward to today and the framework is installed over 110 million times per week and is trusted by many of the world's biggest companies to style products like ChatGPT, X, Cloudflare, Reddit, and Shopify.

We're joining Shopify to give Tailwind a stable long-term home where it will be actively maintained for the millions of people who depend on it.

## [Why Shopify](#why-shopify)

We built a great little website template business around Tailwind over the years, but deep down I've always wanted the framework to be developed in service of a real product. A complex application solving important problems for real people, where we'd face the same challenges as our users, and could invent solutions that make the framework better for everyone.

**Shopify provides an incredible surface area for us to do this work.** Merchants need to be able to design and host beautiful custom storefronts, and manage sales and inventory in a powerful admin area. Their customers need delightful shopping and checkout experiences, and an intuitive way to keep track of their orders and discover new products through the Shop app. Shopify is also on the frontier of where user interfaces need to go next with their explorations into agentic commerce.

**Shopify was also one of the very first companies operating at scale to see the potential in Tailwind CSS and start building with it**, not only for themselves but [betting on it for their customers](https://x.com/ShopifyDevs/status/1457723173047263234) too. Tailwind is a ~~load-bearing~~ very important part of the stack at Shopify, and they're invested in making sure it's actively maintained and continues to improve and adapt for how the ways we build are changing.

On a less technical note, I'm personally excited because **entrepreneurship has completely changed my life**. We are not doing enough as a society to produce and empower more entrepreneurs, and I believe deeply in Shopify's mission to help more people start, run, and grow their own business.

## [What's next](#whats-next)

**Nothing changes with Tailwind CSS or any of our other open-source projects**. Everything will always be MIT-licensed, and our team will continue to lead and maintain these projects for the community with the support of Shopify.

On the commercial side, we'll no longer be trying to grow the business around Tailwind. All existing customers will of course maintain their access to products like Tailwind Plus and [ui.sh](http://ui.sh/), but we're closing sign ups for new customers to focus on Tailwind CSS at Shopify.

Thank you so much to everyone who has built something with Tailwind and supported us over these last nine years. I never could've imagined the project would become what it has today, and I truly believe there's no better place for us to continue to do this work than Shopify.

trafilatura

2,949 characters
Big one today — Tailwind is joining Shopify.

When I started working on Tailwind over nine years ago, my only goal was to create something that would make it easier to build beautiful interfaces for my own projects. Fast-forward to today and the framework is installed over 110 million times per week and is trusted by many of the world's biggest companies to style products like ChatGPT, X, Cloudflare, Reddit, and Shopify.

We're joining Shopify to give Tailwind a stable long-term home where it will be actively maintained for the millions of people who depend on it.

## Why Shopify

We built a great little website template business around Tailwind over the years, but deep down I've always wanted the framework to be developed in service of a real product. A complex application solving important problems for real people, where we'd face the same challenges as our users, and could invent solutions that make the framework better for everyone.

**Shopify provides an incredible surface area for us to do this work.** Merchants need to be able to design and host beautiful custom storefronts, and manage sales and inventory in a powerful admin area. Their customers need delightful shopping and checkout experiences, and an intuitive way to keep track of their orders and discover new products through the Shop app. Shopify is also on the frontier of where user interfaces need to go next with their explorations into agentic commerce.

**Shopify was also one of the very first companies operating at scale to see the potential in Tailwind CSS and start building with it**, not only for themselves but betting on it for their customers too. Tailwind is a ~~load-bearing~~ very important part of the stack at Shopify, and they're invested in making sure it's actively maintained and continues to improve and adapt for how the ways we build are changing.

On a less technical note, I'm personally excited because **entrepreneurship has completely changed my life**. We are not doing enough as a society to produce and empower more entrepreneurs, and I believe deeply in Shopify's mission to help more people start, run, and grow their own business.

## What's next

**Nothing changes with Tailwind CSS or any of our other open-source projects**. Everything will always be MIT-licensed, and our team will continue to lead and maintain these projects for the community with the support of Shopify.

On the commercial side, we'll no longer be trying to grow the business around Tailwind. All existing customers will of course maintain their access to products like Tailwind Plus and ui.sh, but we're closing sign ups for new customers to focus on Tailwind CSS at Shopify.

Thank you so much to everyone who has built something with Tailwind and supported us over these last nine years. I never could've imagined the project would become what it has today, and I truly believe there's no better place for us to continue to do this work than Shopify.

html2text

4,583 characters
[](/)v4.3

`⌘K``Ctrl
K`[Docs](/docs)[Play](https://play.tailwindcss.com/)[Blog](/blog)[Showcase](/showcase)[Partners](/partners)[Plus](/plus?ref=top)[](https://github.com/tailwindlabs/tailwindcss)

September 9, 2026

# Tailwind Labs is joining Shopify

![](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fadamwathan.08sgrmv1qg4j3.jpg&w=96&q=75)

Adam Wathan

[@adamwathan](https://twitter.com/adamwathan)

![Tailwind CSS and Shopify](/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fog-
image.103kpqahmns2b.jpg&w=3840&q=75)

Big one today — Tailwind is joining Shopify.

When I started working on Tailwind over nine years ago, my only goal was to
create something that would make it easier to build beautiful interfaces for
my own projects. Fast-forward to today and the framework is installed over 110
million times per week and is trusted by many of the world's biggest companies
to style products like ChatGPT, X, Cloudflare, Reddit, and Shopify.

We're joining Shopify to give Tailwind a stable long-term home where it will
be actively maintained for the millions of people who depend on it.

## Why Shopify

We built a great little website template business around Tailwind over the
years, but deep down I've always wanted the framework to be developed in
service of a real product. A complex application solving important problems
for real people, where we'd face the same challenges as our users, and could
invent solutions that make the framework better for everyone.

**Shopify provides an incredible surface area for us to do this work.**
Merchants need to be able to design and host beautiful custom storefronts, and
manage sales and inventory in a powerful admin area. Their customers need
delightful shopping and checkout experiences, and an intuitive way to keep
track of their orders and discover new products through the Shop app. Shopify
is also on the frontier of where user interfaces need to go next with their
explorations into agentic commerce.

**Shopify was also one of the very first companies operating at scale to see
the potential in Tailwind CSS and start building with it** , not only for
themselves but [betting on it for their
customers](https://x.com/ShopifyDevs/status/1457723173047263234) too. Tailwind
is a ~~load-bearing~~ very important part of the stack at Shopify, and they're
invested in making sure it's actively maintained and continues to improve and
adapt for how the ways we build are changing.

On a less technical note, I'm personally excited because **entrepreneurship
has completely changed my life**. We are not doing enough as a society to
produce and empower more entrepreneurs, and I believe deeply in Shopify's
mission to help more people start, run, and grow their own business.

## What's next

**Nothing changes with Tailwind CSS or any of our other open-source
projects**. Everything will always be MIT-licensed, and our team will continue
to lead and maintain these projects for the community with the support of
Shopify.

On the commercial side, we'll no longer be trying to grow the business around
Tailwind. All existing customers will of course maintain their access to
products like Tailwind Plus and [ui.sh](http://ui.sh/), but we're closing sign
ups for new customers to focus on Tailwind CSS at Shopify.

Thank you so much to everyone who has built something with Tailwind and
supported us over these last nine years. I never could've imagined the project
would become what it has today, and I truly believe there's no better place
for us to continue to do this work than Shopify.

## Get all of our updates directly to your inbox.  
Sign up for our newsletter.

Subscribe

### Tailwind CSS

  * [Documentation](/docs)
  * [Playground](https://play.tailwindcss.com/)
  * [Blog](/blog)
  * [Showcase](/showcase)

### Resources

  * [Refactoring UI](https://www.refactoringui.com)
  * [Headless UI](https://headlessui.com)
  * [Heroicons](https://heroicons.com)
  * [Hero Patterns](https://heropatterns.com)

### Community

  * [GitHub](https://github.com/tailwindlabs/tailwindcss)
  * [X](https://x.com/tailwindcss)

### Tailwind CSS

  * [Documentation](/docs)
  * [Playground](https://play.tailwindcss.com/)
  * [Blog](/blog)
  * [Showcase](/showcase)

### Resources

  * [Refactoring UI](https://www.refactoringui.com)
  * [Headless UI](https://headlessui.com)
  * [Heroicons](https://heroicons.com)
  * [Hero Patterns](https://heropatterns.com)

### Community

  * [GitHub](https://github.com/tailwindlabs/tailwindcss)
  * [X](https://x.com/tailwindcss)

Copyright © 2026 Tailwind Labs Inc.·[Trademark Policy](/brand)

Other outputs: markdownify 4,717 characters · html-to-markdown 17,412 characters · htmd-py 48,370 characters.

Extraction can still miss content or retain clutter, and htomd doesn’t execute JavaScript. Simple tables become Markdown tables; complex ones become row and cell text.

htomd is MIT licensed. Try it, read the source, or report a page it gets wrong.