Developers July 13, 2020

How can I integrate a Freemium business model into my Chrome Extension?


Over the past 6-7 months, I've been working on a chrome extension called OneLine that combats dyslexia online. I am trying to add a pro version to the extension, but I'm not sure where to start. I've read some articles and I've surfed around the Chrome API docs, but I haven't found anything very promising.

I would like to know:

  • What service I should use (should I go through the Chrome API, or use something like Stripe?)
  • Does the transaction have to happen in the popup of the extension? Can I do it on an external webpage?
  • If I don't go through the extension, how do I authenticate who is a premium member and who isn't?

Any help would be appreciated!

  1. 2

    This way works for me, 2 saas extensions.

    1. I require oauth login (
    2. for handling subscriptions (Stripe doesn't work for my country)
    3. Upgrade is as simple as opening a new tab
    4. To check if user is premium the extension calls REST API. License server caches all subscriptions in RAM and checks instantly if the emails has a valid subscription.
    1. 1

      The OAuth login - does that just create a user with user credentials and an OAuth key? I assume the users are stored in a DB? I'm also a little confused about the last step, what is the extension checking, the OAuth keys?

      1. 2

        From user perspective it's just "Login with Google" flow.

        chrome.identity APIs - help you authorize user and get his verified email address.

        Then you call your licence server APIs and check if the subscription is active/due dates/etc

        I personally don't use DB at all. My licence server syncs with payment provider APIs and stores cache in RAM.

        (PS if you want to port your extension to Edge or Firefox; oauth doesn't work there)

        1. 1

          Which license server API service did you use?

          1. 1

            I implemented it. It's a simple REST service that returns subscription status by email - active or non-active

        2. 1

          Thank you for the info! Very helpful :)

  2. 1

    Its relatively straight forward. You would need to build a site where you direct your users to do the actual purchase tho that could be offloaded to gumroad, paypal, or whatever you want to use to handle ecommerce.

    This should then generate a purchase and let your site know it has occurred. At this point you would generate some kind of license key -- anything as simple as uuid, to whatever scheme you would like.

    In your extension you would then have an area that allows user to enter the key. Once entered, it would verify this via XHR to your site. I generally add protection besides the key -- for instance, in one of my extensions I have user enter something that came from ecommerce transaction, in my case, I have them enter email.

    There are caveats to think about such as what if the key is used multiple times, or if the user installs the extension on new PC, but those are up to you as to how restrictive you'd like to be.

    Happy to help further if needed via email.

    1. 1

      Thank you! This seems pretty simple!

  3. 1

    Hi Graham,

    the only paying chrome extension I use is cssscan. It’s great. You can find the creator here in indiehackers. Is @gvrizzo .

    You can find the link to the extension here

    I don’t know exactly how he handles the licenses but i guess he will have a license server or a table with valid licences and when you type your license, he will verify is valid and is not been used more than 2 times. If this is correct, you will unlock all the premium features.

    Hope this helps.


    1. 1

      Thanks Ricardo!