Some of you may have been seeing some buzz around the Web Monetization API recently, especially if you hang out on DEV.to quite a bit. Perhaps you’ve seen mentions of “Grant for the Web”, “Coil” or “Interledger” among many other names and terms and are trying to make sense of it all. Here's my attempt at trying to shed some light on it.
Note: there have been plenty of excellent posts about Web Monetization right here on Dev, from its history, to how you can implement it, to various plugins and extensions, so do follow #webmonetization
I’ll be honest, the first time I heard about Web Monetization was at View Source 2019 when I met Christopher Lawrence for a chat over coffee. He shared with me what Grant for the Web was all about and what they wanted to achieve. And that’s how I eventually got involved as one of the ambassadors for the program.
The concept of an alternative to ads for content creators to earn money sounded intriguing. For the longest time, there were not that many options to earn money for content you put on the web. You could either ask folks to pay you for your content somehow via payment platforms or subscriptions or you could place ads all over your site.
But first, a little bit of background (there's a lot more to it, but take this as an abridged version).
In October 2015, Stefan Thomas and Evan Schwartz released a whitepaper titled A Protocol for Interledger Payments which proposed a protocol for payments across payment systems by enabling secure transfers between ledgers. At the time, both gentlemen were part of Ripple, at enterprise blockchain company founded in 2012.
The Interledger Project itself is open-source and not tied to any single company, blockchain or currency. Interledger itself is a network of computers that enable the sending of value across independent payment networks, and the Interledger Protocol defines how it all works.
Along with the publication of the whitepaper, Adrian Hope-Bailie, also proposed the Interledger Payments Community Group at the W3C. As commerce moves increasingly to the web, the W3C has a vested interest in developing open standards for web payments and security by getting those with interest and knowledge involved with the W3C.
Web Payments Activity at the W3C’s main focus is to develop web standards for APIs that increase the convenience and security of Web Payments. There are two working groups and multiple community groups who are involved in this endeavour, Interledger Payments among them.
Payment pointers are a standardised identifier for payment accounts which resolve to a URL that can be used to discover available Open Payment endpoints for interacting with the account. Open Payments is an application level protocol built on top of the Interledger protocol.
Here's the list of specifications that have been mentioned so far:
- Interledger Protocol V4
- Payment Pointers, W3C Interledger Payment Method Unofficial Draft
- Open Payments
- Web Monetization, W3C Community Group Draft Report
There is quite a lot of technical detail in them, but still, it's pretty cool to see the process of introducing a new protocol to the web. As I mentioned earlier, there's a growing amount of content about web monetization, albeit slightly scattered and piece-meal at the moment.
I’m one of the Grant for the Web Ambassadors and if you poke around the stuff I do, you’ll find that I pretty much do standard web developer things.
Since I’m reasonably competent at that, I figured I would document the whole process of implementing the Web Monetization API, explain how the ecosystem works and basically build out a comprehensive guide to web monetization.
Which means, yes, of course, I’m building a website. I really like building websites. It’s like totally my jam. I mean, I could draw a zine or something, but nah, I’ll leave that up to all the way more artistic folks out there.
I just got the site up and running and will be working on content, design and layout all in “real-time” moving forward, and you can check it out at https://webmonetization.dev/.
The site is built with Eleventy ❤️, and its source code is on GitHub. If you find anything broken, feel free to raise an issue, or even better, submit a pull request. You can also let me know what content would be useful to you.