In this screencast we start talking about how we are going to build the membership area of CSS-Tricks. Part of the Kickstarter that made this whole thing possible was the promise that Kickstarter backers would get access to a private members-only area where they would watch videos like the one on this very page.

It's kind of a funny moment really, because you're watching a video in the private access area that, in the video, has barely been conceived yet.

We're using WordPress, and WordPress has a lot of the functionality that need already: user authentication, user access levels, conditional logic for displaying content based on access levels, CMS-ness, etc. So obviously, let's build this private access area as part of WordPress.

What WordPress doesn't have is a way to accept payments and manage a set of arbitrary access levels. For this site we'll need at least two since I promised two different levels of access. WordPress has stuff like "subscriber" and "editor" and whatnot - but that has too much meaning in WordPress core. I just want to define access levels arbitrarily.

Fortunately we don't have to write all this code ourselves. WordPress is a huge community and an extensible code base. So there are loads of plugins to provide this functionality. But which one is best? That takes some research. I did this research through creating a spreadsheet to compare all the features (file downloadable below). In this screencast we look through that spreadsheet. We even talk about intangible things like features that we wish they had and the people behind the plugins.

In the end, we decide on Restrict Content Pro.


  1. User Avatar
    Permalink to comment#


    I am going to use this plug in for a site I am doing. The only problem I am having is how do you handle if someone wants to upgrade there subscription. I can’t find a way on CSS-Tricks so do you just not have one? Thanks!

    • User Avatar
      Chris Coyier
      Permalink to comment#

      I’m using PayPal as the payment processor with RCP. PayPal doesn’t have any way to adjust subscriptions, so the only way to upgrade is to cancel and re-start a new subscription. I think Stripe can handle plan upgrades, and RCP has a Stripe module, but I’m unsure if RCP supports it on the plugin side.

  2. User Avatar
    Sascha Moeser
    Permalink to comment#

    Hey Chris,
    I know you did a lot of research on all those different Membership plugins. Is there any (free) plugin you would suggest which has obviously less features than the payed ones but is still doing the work good enough for smaller projects?

  3. User Avatar
    Jasmine Wilkinson

    FYI link to Restrict Content Pro above no longer works – I found it here instead

Leave a Comment

Posting Code!

You may write comments in Markdown. This makes code easy to post, as you can write inline code like `<div>this</div>` or multiline blocks of code in triple backtick fences (```) with double new lines before and after.

Code of Conduct

Absolutely anyone is welcome to submit a comment here. But not all comments will be posted. Think of it like writing a letter to the editor. All submitted comments will be read, but not all published. Published comments will be on-topic, helpful, and further the discussion or debate.

Want to tell us something privately?

Feel free to use our contact form. That's a great place to let us know about typos or anything off-topic.