The Missing Piece in my Developer’s Tool Belt
I have been making websites for over twenty years. This year I add a feature that has eluded me all along.
I started making websites when I was in middle school. Back then, it was a place for me to post my illustrations. It was a space I carved out to experiment, to define myself. The more I worked in the space, the more interested I became with the websites themselves — not the content. The tried and true Marshall McLuhan quote, “the medium is the message” was not lost on me. During these years, web browsers added more features: the canvas for drawing with code, an audio interface for triggering and generating sounds, media input for webcam, microphone, and other peripherals to talk to websites. As you can see from my portfolio, I make use of these browser features to explore creative expression. However, during this same period the internet expanded into domains for more impactful than creative pursuits. Many say the most important aspect of the internet is its ability to enable us to communicate instantaneously and asynchronously at the same time. In spite of this truth, I believe the reason the internet is so integral today is its capacity to augment commerce. A person can practically buy anything at any time from anywhere with just a few clicks. Ironically it has taken me until this year to critically engage with commerce on the web. I learned about what payment transactions are and how to implement them on the web. Here are my takeaways:
Users are not customers.
For the longest time, I thought that users and customers were the same thing. Under this line of reasoning, if you wanted to sell something, then you needed to have user accounts. This was true in the aughts and twenty-tens. The economics of internet platforms was focused on amassing active users. There was a footnote attached to this phrase that I did not pay attention to, however. The footnote was: the more users you had, the more investment you could get. More investment buys you time to figure out how to turn those users into customers. Consider this point of view in the creative process:
If I want to create an experience that centers around financial transactions. In order to do that, I need to create a user accounts system. There is an inherent buffer for me. I need to create and manage a system just to get to the experience. The complexity always felt too high for me to tackle. I tried to build systems, but they were hard to manage because the infrastructure changes so quickly. I also learned while working at Google that forcing user accounts created friction for user engagement and was a ticking time bomb for privacy concerns and malicious attacks. So, I always abandoned user accounts and as a result commerce on the web.
Today, however, the tools are very different. In April, I attended Stripe’s developer conference. I learned that you can create payment checkout portals without having to have user accounts. Stripe manages a customer object and gives you access to pertinent, but not sensitive data. You can attach additional user data to a customer profile on Stripe’s databases. In this way, there are services I can rely on to do the management and heavy lifting of the user-to-customer relationship. I do not need to worry about a user in the name, address, personal details sense.
Money is universal, that does not mean currencies are too.
It goes without saying that most cultures have the concept of money. So, wherever you may be, transactions take place. However, not all financial transactions operate the same. For one of my client’s I spent time implementing Coinbase’s Commerce API. It is a way for websites to accept Ethereum as a form of payment. Similar to how I described Stripe’s checkout portal, the developer does not need to know about a user or a customer. Coinbase’s API mimics the structure, stability, and flexibility of Stripe’s. However, completing a transaction in fiat currencies (credit and debit cards) is opposite to how cryptocurrencies (and cash for that matter) operate.
Cryptocurrencies are considered a “push transaction”. Meaning, the buyer needs to sign, send, and confirm the reception of payment before getting their purchase fulfilled. Credit cards, on the other hand, are a “pull transaction”, meaning that an intermediary (usually a bank) assumes liability for the payment while the steps actually occur.
These fundamental differences have rippling effects to the processing times, fees, and overall user experience. I highlight Stripe and Coinbase, but there are many other platforms for online payments. Each one has their own quirks, their own bizarre transaction culture. Like any technology it presents a space rich in expression and idiosyncrasy.
Are advertisements decent?
A popular avenue to side step the user-to-customer relationship in the aughts and twenty-tens was to slap advertising onto the experience. For most of my career, I hated advertisements and advertising. As a consumer, I thought it was always fake and in the way of the thing I was trying to get to. For these reasons, I decided to never put advertisements on my own web properties. I thought I was taking a higher, more pious, route. I wanted to regard the web as a medium for art. If I made it a sacred space, perhaps others would see that too?
I still do not hold the highest regard for advertisements. I am not an “ads guy”. However, the deep dive into understanding how payment transactions work made me appreciate the simplicity in ads. Yes, they can be ugly banners destroying the user experience of a website. But, they are a way to support an experience without worrying about the user-to-customer relationship. Further, the transaction of an ad is well understood. Pay for something in exchange for a bit of your attention. Lastly, like well-crafted virtual effects in a film, ads are becoming more authentic (whatever that means) through social media.
Now, I do not regret my decision to withhold ads on my own websites (although, I did add ads to the Two.js website in 2021 and I have made about $300). But, I would be remiss to do a little back of the napkin math with you all to share how much money I have potentially left on the table. Apologies in advance as this gets a little technical. I collect analytics on all my websites, but by far the most popular ones I made are Patatap and Typatone. They routinely get hundreds of thousands of visitors a month. At least a few times a year, the sites go viral. For instance during the July 4 weekend, I got a notification from my server saying that Typatone had overages. I learned that around 450,000 people visited the site. In comparison, the annual visitor to the Museum of Contemporary Art, Los Angeles is around 300,000. In total these two sites have reached 100 million unique visitors. Light searching online for average ads revenue based on unique visitors per month shows I left somewhere between $250,000 – $700,000 on the table.
After spending the time to get to know financial transactions on the internet better, I understand why I had avoided them for so long. Until very recently, it was extremely complicated and fraught with challenges to manage customers and payments online. These complex systems have their own language and culture. There are alternative ways to make money, such as advertising or in my case taking up client work, on the web. These takeaways and others make up my skillset as an artist, collaborator, or vendor. For the first time in my +20 year career, I feel competent and confident in all major aspects of internet technologies.
Just in time for some new technology to surprise us all,
—Jono
Dude! Great article right here. I appreciate the thoughtful and open reflection. You put it all out there in a very honest way. Thanks! :D