--- 
canonical: 'https://mwop.net/blog/2026-09-18-webmentions.html'
title: 'Webmention support'
author: "[Matthew Weier O'Phinney](https://mwop.net)"
created: '2026-09-18T10:12:40-05:00'
updated: '2026-09-18T11:30:10-05:00'
tags:
  - indieweb
  - microformats
  - php
  - webmentions

---
I've known about [webmentions](https://indieweb.org/Webmention) for years, as well as [microformats](https://microformats.org); I've even included microformats in my markup for probably close to a decade at this point. But accepting and sending webmentions, while it seemed like a great idea, just never really made it to my priority list.

Until it did.





Inspired by <a href="https://www.jamestitcumb.com/posts/webmentions" class="u-in-reply-to">James Titcumb</a> and <a href="https://godless-internets.org/2026/08/27/critique-of-microformats2" class="in-reply-to">Owls</a>, I started investigating how to implement webmentions, and ended up going down the rabbit hole myself.

There has long been a [PHP API for Microformats (php-mf2)](https://packagist.org/packages/mf2/mf2).  It's not been updated in 4 years — largely because it's complete — and uses PCRE for finding microformats and validating URIs. Here's the thing: the last two releases of PHP (8.4 and 8.5 at the time I write this) have included some amazing features that make things like this both far simpler and  more accurate. These include the new HTML5 parser included in PHP 8.4 — which even provides `querySelector()` and `querySelectorAll()` implementations — and the [Uri extension](https://www.php.net/manual/en/book.uri.php) included in PHP 8.5, which provides robust, standards-based URL parsing and validation.

Add in things like [PSR-18's HTTP Client](https://www.php-fig.org/psr/psr-18/), and it seemed possible to create a pretty minimal library that gives full-featured support for both microformats and webmentions.

So, I decided to try my hand at it.

I'll likely open source the libraries I created (one for parsing microformats, another for sending and receiving webmentions), but I want to wait until I've ironed out any edge cases. While I've tested against the various resources that [webmention.rocks](https://webmention.rocks) provides, as well as the [microformats website](https://microformats.org), I'm sure that I'll be observing some oddities in the wild. But I have webmention receiving in place, with microformats discovery for identifying the type of webmention sent to my site. I have also setup a post-publication process for parsing my own content for links, and performing webmention discovery and sending. I want these all to run for a while to find what is working and what isn't in the real world.

In the meantime, feel free to send webmentions to my [blog posts](/blog), [art gallery images](/art), or [Now pages](/now). Just like my comments, I moderate all webmentions before publishing them (someday I'll blog about how I accomplished that as well).

#### Update

I immediately discovered an error in how I was combing _my own content_ for potential links to which to send webmentions when I first published this! Hopefully I have that corrected now, and folks will get some mentions from this post!