Hello, everyone.

I'd like to talk to you about trying to get paid on the web today as a developer and a creator.

About 20 years ago, I learned how to create websites.

I made them for anything and everything using this little service called geocities, to house them.

After I got decent at it, I started looking at how I could make a little bit of money from them.

Some of the websites I was making were quite useful.

Back then, because I lived in what banks and service providers generally classified as a shit country, I couldn't actually get paid by a lot of people.

Donations on PayPal didn't work in Romania for a really long time.

My only option was to try and put ads on them.

I'm not going to go into the ethics of putting or not putting ads on your website here, but spoiler alert, I didn't put ads on any of my websites.

Back then, banner ads and pop-up ads were all the rage with pay-per-click just emerging.

Fun fact pop-up ads are one of the reasons you now have popup blocking enabled by default in most browsers.

Targeted ads weren't even a thing back then.

Fast forward 20 years.

Ad networks consolidated, expanded and became a lot better at showing you just what you didn't want to see.

Tracking evolved to the point ads can be called smart.

I on the other hand can no longer be called smart.

Aging does that to a person.

I've tried setting up ads today and I've had to follow instructions on how to do that.

As the ad networks consolidated, there are only two popular ones today, which account for 70% of ad spend globally.

I tried setting up one of them, silly me.

I thought I need to get an account first.

If you try to set up ad sense today, the very first step in that process says "one, create the right type of website for Google AdSense." That's right.

You need the right kind of website first.

So, how do I make money, when my websites aren't the right type of websites?

Before you jump to any conclusions, I was trying to add ads, to puns.dev, a curated selection of the worst computer puns from around the internet.

Adsense, didn't have any problems with the content, but the topic wasn't generating as much buzz as they'd want.

It turns out if you want to make money with ads, you have to build for traffic, not necessarily for a niche or for yourself.

With limited traffic, ads won't payout.

What if your website has a small, but very loyal audience.

On puns.dev for example, my average session is 15 minutes with about a thousand sessions per month.

If I had the right type of content, probably that would be okay for AdSense or if I had about a hundred times more sessions.

Time on page is irrelevant for ads, ads are trying to capture your attention and get you off the page and into a sales process as fast as possible.

So you're basically making money when people leave your websites, not while they stay on.

It's an incentive to build for SEO and short content, rather than for people if you happen to have the type of content or traffic that's marketable, then you're spoiled for choice about the type and number of ads you can have.

And if you take a look at most news websites, you can see exactly how hard it was for them to pick just one type of ad.

I'm joking.

They probably want the user experience to become unbearable, just so you click away from the news and buy yourself something pretty to help forget about the news.

Yes.

While you're searching for this particular bit in my talk, I bought something from one of the ads.

I'm not proud of it.

And that's because no matter how smart and sophisticated the ad blockers become ad makers will always have an incentive to circumvent them.

I might be a bit of a special case, I actually run multiple levels of ad blocking.

One on my router that blocks the most commonly injected scripts and one in my browser, that's supposed to find ads on a page and remove them.

That's not enough.

What about me, the website maker?

If I have low traffic, a niche and not a lot of ads, even those few ads I can have are blocked.

It's not exactly conductive to bank account growth now is it?

Last year, around this time, I've stumbled upon an emerging web API that seemed more geared towards reqarding people spending more time on my websites, not less.

The API is called the web monetization API.

If you go on the webmonetization.org website, it says it's a JavaScript browser API that allows the creation of a payment stream from the user agent to the website.

I know I was confused as well.

The creation of a payment stream from the user agent, to the website.

That actually translates to "your website can be paid from the browser".

As opposed to ads it's not from the seller that pays the ad network that eventually pays you for bringing people to a product.

With web monetisation, your website is the product and you're being paid by your users, who pay a web monetization provider that pays you on behalf of your users.

The current web monetization provider Coil is attention based, so getting paid at the flat rate of 36 cents per hour, for every second that users spend on your website.

The motivation behind the creation of the API is simple-the ability to transfer money has been a longstanding omission from the web platform.

As a result, the web suffers from a flood of advertising and corrupt business models.

Web monetization provides an open, native, efficient, and automatic way to compensate creators, pay for API calls and support crucial web infrastructure.

And while I wouldn't go, as far as calling puns.dev crucial web infrastructure, it certainly fits as a creation.

I, for one like the idea of being rewarded for my creation in an ethical way, as a developer on the open Web.

That was the main reason I tried web monetization when I passed up on ads for the past decade or so.

The how can be as simple as a single line of HTML, adding a new meta tag to a web page with the name monetization and the content attribute pointing to a payment pointer, instructs the browser to start streaming money towards that payment pointer.

You might be wondering what the payment point is.

Payment pointers are a standardized identifier for payment accounts.

In the same way an email address provides an identifier for a mail box in the email ecosystem, a payment pointer is used by an account holder to share the details of their account.

To get a payment pointer you'll have to create an account with a provider that offers payment pointers for that account.

Currently, there are two digital wallets that support them: Uphold and GateHub.

After you have your payment pointer added to the meta element, we're in the process of updating the web monetization specification, and one of the major changes is that we're switching from a meta element to a link element.

If you're adding web monetization to your website, I'd strongly encourage you to add both elements-make it future proof.

Payment pointers are a standard onto itself and have a syntax that converts from payment pointers to URLs.

The dollar sign, converts the HTTPs.

And that's what you'll have to use as the link element's href I said earlier, Web Monetization was a JavaScript API.

The meta/link is the first and easiest level to add web monetization to your website.

And so what I use, because I see it as people rewarding my content if they can.

If you'd like to use it for more advanced use cases like unlocking extra content for web monetization enabled users, there is also a JavaScript API available.

Because we're in the process of updating the specification, the monetization API lives under both document and navigator for now.

I highly encourage you to keep checking the process on the api webmonetization.org.

Web Monetization is being proposed as a W3C standard at the web platform incubator community group.

This is your chance to contribute to its future.

We've got a lot of issues open for discussion right now.

We're looking for community feedback before we finish incubating this into the next step on the standards track.

If you head over to github.com/wicg/webmonetization, we'd love to hear from you.

In terms of adoption browsers have support for the web monetization standard, either natively or via an extension.

Puma browser is a mobile browser that implements monetization natively, and all the major desktop browsers have an open source extension that enables web monetization.

The Web Almanac looked at a little over 8 million websites this year to come up with a state of the web type report.

As part of the markup chapter, we've looked at how many of those websites were web monetized.

We've seen adoption steadily growing over the past year, which is great considering how big the HTTP archive data set is, and how slowly it takes to gain numbers.

Even for a feature that is widely and natively supported.

You might wonder why hasn't web monetization happened sooner.

That's a very good question.

It's because until recently there hasn't been an open neutral protocol for transferring money, but today a new protocol enables a simple ledger-agnostic and currency agnostic method for the transfer of small quantities of money.

This opens up the possibility for streaming money, which makes web monetization possible for the first time.

Before we dive deeper into this new protocol, I'd like to talk a bit about the problems that it actually solves.

In 2021 there are a lot of places that store money, let's call them ledgers.

And I don't mean ledgers like in crypto, I mean ledgers, like what there used to be before crypto.

A book or a collection of accounts in which account transactions are recorded.

By that definition, a ledger can be PayPal or Venmo or banks.

Even Starbucks is a ledger.

I have an account, the account stores money for me, and it recalls all my transactions.

The problems appear when I tried to transfer some of that value stored in a ledger.

If I'm trying to move money from my bank account to a different person with a bank account with my bank, it's easy and cheap.

The money doesn't actually move.

Most probably my bank updates an internal database, and the transfer is done n seconds.

If I tried to do a similar thing, let's say from my bank to an international bank, it becomes a little more complicated.

Because we bank in different countries my bank account addressing system won't be the same as bank of America, for example.

So I'll have to ask for an international bank account address.

You commonly see that as iBan.

The transfer itself is going to be cheap.

In my example, because Metro bank and Bank of America have a working relationship.

I won't have to pay fees.

And depending on the size, the person receiving the funds will get them instantly instead of having to wait for human to manually approve the transaction in 3 days.

If I tried to do the same thing with a different bank, let's say my mom's local bank from Romania, it stops being cheap.

It wasn't easy to begin with, but now because the two banks don't have a working relationship, my money will actually be transferred to an intermediary bank that has relationships to both banks.

And then from there make its way to Romania.

The process won't be instantaneous.

And depending on the two banks involved, it can take up to six business days and you'll end up paying up to 18% in fees.

What if I wanted two connect to ledgers that normally don't talk to each other.

Let's say if I wanted to transfer money from my Starbucks account to my mom's bank, that becomes impossible altogether.

I don't think I can even transfer money from my Starbucks UK account into a Starbucks Romania account.

This whole process also becomes impossible if the transaction amount is low.

No banks accept the transaction amount as low as one dollar.

If I try to use my card instead I pay 30 cents, plus 2.75% in fees, essentially wiping out the third of the amount.

That's why web monetization as a concept wasn't feasible until recently.

Micro-transactions or micropayments aren't a novel idea, but the technology to do so was only recentlydeveloped.

The Interledger protocol was designed to solve exactly these types of problems.

It's an open neutral protocol for transferring money.

Very, very small amounts of money at the time, just like the internet or the TCP/IP protocol to be exact.

It was designed for sending packets of money across different payment networks or ledgers.

Again, ledgers, not as in crypto, but ledgers as in places where money is stored and transactions are recorded.

It's loosely based on TCP/IP.

TCP/IP is the set of communications protocols used to describe a network of interconnected computers.

The biggest public network that implements the protocol is colloquially known as the internet.

In the same way, the interledger protocol is used to describe a network of interconnected ledgers.

The biggest public network that implements the protocol is simply called interledger.

It allows you to add payments without being tied to a single currency or payment provider or to send payments to other ledgers, even if they are multiple hops away, inspired by TCP/IP interledger is easy to implement and use.

Stefan Thomas and Evan Schwatz co-created interledger in 2015 in, October of that year, the white paper Interledger protocol, and the first implementation were released.

Since then, the protocol stack has evolved and is currently at version four.

ILP v 4 is a simplification of previous versions of the protocol and it's optimized for routing large volumes of low value packets, also known as penny switching.

I was saying it's based on the TCP/IP protocol.

The TCP/IP stack has four layers, the application, transport internetwork and link layers.

In a similar fashion, the Interledger protocol has four layers for application, transport, Interledger, and link.

The application later protocol is called SPSP or simple payments setup protocol.

It allows for exchanging basic server details needed by a client to set up a stream connection.

It is intended for use by end user applications.

These are the payment pointers used for the web monetization standard.

The transport layer stream is a multiplexed Interledger transfer protocol that allows for sending multiple streams of money and data between two parties using ILP.

Stream is designed to provide a flexible set of features that allow it to be used for multiple payment and messaging applications.

The Interledger layer uses binary encodings based on and compliant with abstract syntax notation one, using canonical octet encoding rules.

These are basically the packets of money traversing the ledgers.

BTP or bilateral transfer protocol defines a link layer protocol that communicates this information over a web socket and is compatible with a wide range of underlying ledgers.

The implementation of a link protocol may be incorporated into a ledger plugin since the link protocol has to communicate settlements that occur in the underlying ledger.

Interledger's application layer serves a similar purpose as messaging in banking terms, interledger, transport, and Interledger layers, combined are similar to a clearing system in banking, though, there are some differences.

Interledger's link protocols don't have a direct banking equivalent, but they provide authenticated messaging, they enable the Interledger protocol layer, and they also associate settlement events in the underlying ledgers the balances in the Interledger protocol layer.

The underlying ledger systems are equivalent of settlement in banking terms.

You'll note this settlement is not part of a network or protocol stack.

The Interledger network is a graph of nodes or connectors that have peered with one another by establishing a means of exchanging ILP packets, and a means of paying one another for the successful forwarding and delivery of the packet.

Where they pay each other, and what they settle is up to everyone to decide.

Interledger was designed to exchange value between all these ledgers.

One of the side-effects of the initial design was the ability to exchange any value amount, including extremely small values.

Something that current banking rails can't really do.

And that's the reason why web monetization is now possible.

If you'd like to be part of the future of Interledger or web monetization, please get involved.

You can join the bi-weekly Interledger community calls, where we showcase some of the exciting projects using the network.

You can find out more about the Interledger foundation at interledger.org.

Or you can join the web monetization community community.webmonetization.org.

And with that, I'd like to thank you all for being an awesome audience.

If you'd like to also try web monetization from a user's perspective and get the web monetization provide the subscription to serve the web, the awesome folks at Coil have been kind enough to share some coupon codes for a free six month trial.

Please reach out on Twitter.

I'm @avolakatos there and I'll send some coupon codes your way.

Thanks again.

Pay the Web Forward

Alex Lakatos

Technology Lead Interledger Foundation

How to make money with your website?

Screenshot of a Google search and results for "How to make money with your website"

Ads

Screenshot of a page at Google that reads "Ever wondered how to make money with ads on your site? Try Google AdSense"

Ads

Illustration of a table, laptop and phone side by side, all open to web pages with Ads prominent on each.

Ads Much?

Photo of Time Square at night with video billbords showing ads

image of a nahd in a stop sign, heading reads "Ad Blocker"

Web Monetization API

Why?

How?

<meta name="monetization" content="$wallet.example.com/alice">

Web Monetization API

Uphold logo, Gatehub Logo. Beneath these two is the text "Do you know another wallet? Make a PR"

Web Monetization API

<meta name="monetization" content="$wallet.example.com/alice">

<link rel="monetization" href="https://wallet.example.com/alice">

Web Monetization API

document. monetization: EventTarget
document. monetization. state: 'stopped' 'pending' 'started'

navigator. monetization: EventTarget
navigator.monetization. state: 'idle' 'active' 'error'

https://webmonetization.org/docs/api/

Screenshot of Github issues page for web monetization

https://github.com/WICG/webmonetization

Web Monetization Supported Browsers

These browsers implement Web Monetization natively or via an extension

Logos for Puma Browser, Mozilla Firefox Extension, Gogle Chrome Extension, Microsoft Edge Extension

Graph shows a growth in adoption of the web monetization standard from April 2020 to October 2021.

📚

https://almanac.httparchive.org/en/2021/markup

How?

2021

Paypal logo

2021

Paypal and Venmo logos

2021

Paypal, Venmo, Metro Bank and Bank of America logos

2021

Paypal, Venmo, Metro Bank, Starbucks and Bank of America logos

Easy + Cheap

Arrow joins the Metro Bank Logo to another copy of the Metro Bank logo.

Easy + Cheap

Easy is struck out in the heading. An arrow joins Metro Bank and Bank of America

Easy + Cheap

Easy and Cheap are struck out in the heading. An arrow joins Metro Bank and Banca Transilvania

Impossible

An arrow joins Starbucks to Banca Transilvania

Nodes on a network represented by different coloured dollar signs connected by dotted lines.

TCP / IP

Protocol

Network

  • Interledger Protocol
  • ILP
  • Protocol
  • Interledger
  • Network
  • Open Payments
  • Multi-hop Routing
  • Simple Protocol
  • Stefan Thomas
  • Evan Schwartz

TCP/IP Protocol

  • Application
  • Transport
  • Internetwork
  • Link

Interledger Protocol

Diagram represents the Interledger Protocol

Diagram represents the Interledger Protocol

Diagram represents the Interledger Protocol

Diagram represents the Interledger Protocol

Diagram represents the Interledger Protocol

Diagram represents the Interledger Protocol

2021

Paypal, Venmo, Metro Bank, Starbucks and Bank of America logos with the Interledger logo in the middle

2021

Interledger Logo

How to Get Involved

Join the Interledger Community bi-weekly community calls and come chat with us on Slack.

https://interledger.org/developer-tools/community/

Learn more about the Interledger Foundation and Grant for the Web program.

https://interledger.org

Join the Web Monetization Community

https://community.webmonetization.org

Thank You!

Coil codes 👉 Twitter

@avolakatos