A webmention receiver written in Clojure

Hi, I’m new to ClojureVerse. Hope it 's OK to just drop in with a showcase :3

Basically, it’s webmention receiver. Weepinbell receives webmentions, verifies them, parses their microformats, and store them (can also sends webhook requests and update an RSS feed when a new mention is received).

If you don't know what webmention is...

It’s a W3C standard that allows websites to mention each other. For instance, when Alice wrote a blog post in reply to (or merely mentioned) one of Bob’s posts, Alice can send a POST request to Bob’s webmention receiver with params source and target, notifying Bob that his post is mentioned.

Alice should look for the endpoint by checking Bob’s <head>. Lookup is usually done automatically with a webmention sender.

<link rel=webmention href=https://webmention.receiver.com/endpoint>

I’m new to Clojure and this is my first serious Clojure project. So I’m still figuring things out. I’m currently working on the v1.0.0 release.

Also, I think it’s interesting to mention that I made a Clojure wrapper of a WebAssembly program written in Go, using Chicory.

The reason I did this is that there is no stable microformats parser written in Clojure nor Java. I’ve seen an abandoned parser in Clojure and understood that it’s a niche standard. With very few users, it doesn’t really make sense to maintain a native Clojure library.

WebAssembly seems like a good answer. Just bundle .wasm inside a .jar and use Chicory to run program written in any language. Clojure can “interop” with more than just Java.