Logo

dev-resources.site

for different kinds of informations.

A "New Way" to Pay Creators

Published at
9/2/2024
Categories
showdev
webdev
chrome
extension
Author
alvaromontoro
Categories
4 categories in total
showdev
open
webdev
open
chrome
open
extension
open
Author
13 person written this
alvaromontoro
open
A "New Way" to Pay Creators

A challenge content creators often face online is monetizing their content. Imagine a way to specify the preferred donation info without hefty fees and without annoying the site's visitors.

Introducing PayCreators: a Chrome Extension to facilitate the donation process. No more intrusive banners or pop-ups —just seamless contributions.

How It Works

...for people making donations

People wanting to make donations need to install the Chrome extension and then surf the web as they normally do. If the website's owner (the creator) has specified a donation method, then the extension icon will change from a silver coin:

Icon with a silver coin

To a hand with a golden coin.

Icon with a yellow hand below a golden coin

After clicking the icon, a menu will appear presenting the different donation options. Once they pick one, they'll be redirected immediately. That's it! No mystery or anything complicated.

For example, I have specified three donation methods on my website: Patreon, Paypal, and Venmo. As shown in the following image.

Screenshot of Alvaro Montoro's website with the PayCreators extension open

...for content creators

Content creators require a little bit more work... but not much. They don't need to install the extension (unless they want to donate too) but they need to add a new meta tag in their pages' head:

<meta property="creator-payments" content="payments.json">
Enter fullscreen mode Exit fullscreen mode

This meta tag links a file with the accepted donation methods. The file will be in JSON format, with a single object and the donation endpoints: the key is the donation method, and the value is the username.

{
  "buy-me-a-coffee": "alvaromontoro",
  "crowdfundly": "alvaromontoro",
  "ko-fi": "alvaromontoro",
  "patreon": "alvaromontoro",
  "paypal": "alvaromontoro",
  "tipeee": "comicss",
  "venmo": "Alvaro-Montoro"
}
Enter fullscreen mode Exit fullscreen mode

And that's it! There's no need to sign in or share passwords or API keys. The extension will use your username to create links to the payment user pages. You never withhold control or need to grant any access.

Development Process

The extension is open source under the MIT license. You can find the code on this GitHub repository, and contribute with ideas and code.

From the start, I knew it would be a small-ish project. I had developed Chrome extensions in the past to accelerate some work tasks, and this time it would be something more public. I wanted to try the concept and learn about publishing in the Chrome Web Store.

I started with the basic skeleton for an extension:

  • the manifest.json, with the extension metadata;
  • an images folder with the extension icon;
  • a popup folder with three files (popup.html, popup.js, and popup.css) containing all the popup logic and styling;
  • and a scripts folder with the script to run on load.

From there, I would start building and scaling up. Maybe not in the best order, but in one that made it easy to progress and see the updates live on the browser.

I changed the manifest.json file so the extension would run on every page, independently of its URL. Then, I added some code searching for the meta tag and its value in the script. If it existed, I'd update the extension icon to notify in a non-invasive way that the creator accepted donations.

This is where I found my first challenge: I couldn't update the icon without a service worker, and even then, the icon changed for all the tabs and not exclusively for the active tab. Some research online, and questions on Stack Overflow yielded a solution.

Let's say that even for a small extension, I had to learn some new things about how they work and how to use more "complex" structures. It was a fun and interesting challenge for a weekend or two.

Once I was done, I reckoned the code could be prettier so I used AI to evaluate the code and obtain recommendations. I performed most of the things it suggested (mainly error handling, and some refactoring and modularization). And when I was happy with the result, I submitted the extension to the Chrome Web Store.

I had read online that it could take weeks to get the approval. Maybe because this is such a small extension, they approved it in 3-5 days. Even an upgrade I did later (the original icons were not great) took only 2-3 days for approval. It was a great experience overall.

Moving Forward

I'm realistic. This extension is more of a proof-of-concept. I like the idea and think it has potential, but without adoption —not only from creators and donors but from the community in general—, it's just that: a nice idea.

It may not be a successful project, but it made me learn and practice new things. And that counts as a success in my book.

I still want to continue developing it: adding more payment/donation options, and styling it more nicely —It's small, yet, it looks too basic. Time will tell.

Try the extension, check the code, and let me know your thoughts. I'm open to feedback, (constructive) criticism, and suggestions.

extension Article's
30 articles in total
Favicon
Avoiding a "Host Permission" Review Delay When Publishing a Chrome Extension
Favicon
Unlock Cleaner Code with Dexter.ai: A must have VS Code extension for Python Development
Favicon
Export LinkedInâ„¢ Profile to CV using Browser Extension
Favicon
Learn Spanish Chrome extension
Favicon
A "New Way" to Pay Creators
Favicon
Chrome Extension Boilerplate with Popup Interaction (Manifest V3)
Favicon
How to Build a Simple Chrome Extension to Search Selected Text on YouTube
Favicon
Creating a Chrome extension
Favicon
Create A Vim Plugin For Your Next Programming Language, Indentation and Autocomplete
Favicon
Creating a browser extension for Chrome / Edge
Favicon
Create A Vim Plugin For Your Next Programming Language, Structure, and syntax highlight.
Favicon
Build your own VS Code extension
Favicon
Get Affordable and Non Surgical Hair Patching and Hair Extension In Kolkata
Favicon
Introducing Shell Command 2: The Ultimate Shell Command Runner for VSCode
Favicon
How do ad blockers work in the browser?
Favicon
How to test a browser extension locally
Favicon
Explore the Best VSCode Themes for a Stylish Coding Experience 🌈
Favicon
GPT 4 and Why it is Good for Chrome to Crumble
Favicon
Streamline Your WPF Development with Syncfusion: Introducing the WPF Template Studio for Visual Studio
Favicon
VSCode Extension - Doc Tab: edit the doc comments in a new tab
Favicon
Using External Weather Data In A Custom Panel Extension
Favicon
[AWS] Using API Gateway for S3 Uploads to Trigger Lambda Functions
Favicon
Chrome side panel: Simulate close event
Favicon
Data Storage & Retrieval Troubles with Bookmark Decay
Favicon
Diving into Chrome Extension Development: 3 Essential Resources
Favicon
Developing a Chrome Extension for Bookmark Decay
Favicon
"Bookmark Decay": A Project for Learning
Favicon
Twitch Mention Notifier web extension
Favicon
Looking to partner with a chrome extension partner.
Favicon
How to add a progress bar to terraform cli

Featured ones: