How We Built a Recurring Billing Video Training Site with ExpressionEngine, Membrr, Vimeo & Stripe

by Jonathan Longnecker

We’ve had a few people ask us how in the world we built Kicktastic, our video business training project, so we thought we’d tell you.

Real quick - what is Kicktastic?

Kicktastic is unconventional video training for gutsy businesses. Every month you'll get fresh content in the form of a main topic video, transcript and resources, and related video tips. We'll be interviewing the smartest minds in the business and refining it down into info packed, entertaining videos that don't waste your time. Plus, each video has its own discussion thread below so members can ask questions, share their stories and help each other out.

Pretty straightforward, right? Well, not so much. If you’ve ever tried to build a video training platform that takes recurring payments, and do this for under $1,000 in expenses (minus the time to build/design of course) things get a little nutty. Let’s look at each piece.

Publishing Content

For us, this is a fairly easy answer. ExpressionEngine is our tool of choice and can handle pretty much whatever publishing setup you need. In our case, we have 4 main channels:

  1. Main Videos
  2. Tips
  3. Unconfirmed Tips
  4. Series

Main Videos, Tips & Unconfirmed Tips all use the same field group with these fields:

  1. Title
  2. Short Description
  3. Poster Image
  4. Video Embed
  5. Resources Matrix
  6. Playa Field for choosing related Tips
  7. Preview Video Embed

The Series is literally just a grouping of the main videos so it’s a title and a Playa field to relate them into a series. So for EE and the Addon’s we needed we spent around $650. By using a pending status we can show videos before they’re released, greyed out and unclickable.

Also, EE is great at showing and hiding content based on member groups so we can show one thing to potential customers and another to paying customers with some simple if statements in our templates.

We love that EE is so flexible, and it makes it easy to add more content channels as we need it. But publishing is only a small part of the story. We needed to take recurring payments.

Memberships & Recurring Payments

This aspect alone made us think we wouldn’t be able to use ExpressionEngine. There are several great shopping cart/ecommerce Addon’s out there, but their support for recurring payments and memberships are either non-existent or in early beta.

Thankfully we stumbled across an Addon called Membrr. Membrr is not a shopping cart, but a full blown membership solution + payment gateway. We didn’t need all the other stuff that a cart would come with and this is what intrigued us about it.

Membrr hooks right into EE’s membership module, letting you link different subscriptions to different member groups. It will create members on the fly and take care of cancellations and expirations for you. It has support for a ton of payment gateways (notably Stripe - more on that in a minute) and because you are re-billing customers it doesn’t store their CC info on your site at all. Very good for PCI compliance.

Finally, it supports complex coupon setups and takes care of all the automatic emails you’ll need to send out for receipts, billing problems, etc… All this for $145. Not bad at all.

Now, I will say getting it installed was a bit of a chore. Membrr relies on another component called OpenGateway - it’s really what does all the work and the EE Addon just syncs with it. It’s included, but was a pain to get installed. I’ve also run across some weird behavior in how some cancellation situations are handled, but they’ve been very responsive and helpful so far. It’s not perfect, but we haven’t found anything else out there that fit what we needed to to so well.

Taking Credit Card Payments

This should be clear: We have no intentions of using Paypal to take CC payments. We don’t trust them. We knew we would need a real deal merchant account for this, and we did look into it with our bank. But we were trying to get this started on the cheap and got to looking at Stripe.

If you’re not familiar with Stripe, it’s almost like a free merchant account that bypasses the banks. There are no setup fees and no monthly fees. The per-transaction fees are a little higher, but the hassle and setup are virtually non-existent. They transfer any money that comes in 7 days after it clears so we don’t have to manually transfer money all the time.

One benefit of having Membrr support Stripe is that Membrr is smart enough to know what information each gateway requires. Stripe doesn’t require address information, so we were able to simplify our CC form and stop potential issues with international transactions.

So far we’ve been really pleased with Stripe and it’s working great.

Private Video with Vimeo Pro

When we first came up for the idea of Kicktastic we didn’t really plan on the delivery of the video being that big of a deal. I mean, we just use YouTube for the KickAwesome Show. It’s free and works pretty well, right? It does until you need to make it private.

We wanted to create a great user experience at, and not have people mucking about in a protected YouTube channel. You can give people access to videos, but that is a horribly manual process. We obviously needed a professional video solution.

We looked at self-hosting the video and using something like Sublime Video, but we were concerned about bandwidth charges streaming our own video. Then we looked at other 3rd party services like Brightcove and Viddler. Expensive! Viddler starts around $100/month and Brightcove about the same. But they both have bandwidth limits that you have to pay extra for.

We knew we would be shooting and delivering in HD and after doing some math this was going to get out of control quickly.

And then we looked at Vimeo Pro. $200 a year gets you 50GB space and, 250,000 plays and no bandwidth limits. They have great privacy controls, let us brand the player and we just plain like them. Their player is super mobile friendly, too.

Starting something like Kicktastic from scratch, we didn’t want huge monthly expenses. The other solutions would have had us going in the hole until we could get enough people signed up to offset the cost. And those costs would grow pretty quickly. Vimeo Pro let us get up and running for a small up front amount with very reasonable upgrade fees as we grow.

Staying in touch with Campaign Monitor and Campaigner

We know people are busy and don’t have time to come back to Kicktastic and check for new content every day. We could setup protected RSS feeds, but we found people would just rather get an email when there’s a new video available.

We’ve always been huge fans of Campaign Monitor, and we’ve been able to fully appreciate how awesome it is with this project. Jumping to a small monthly plan ($15/month) we can send as many emails as we want up to 500 people. This is great when you’re pumping out new videos every week.

And while we usually like to roll our own designs, we ended up using their email builder so that creating new emails would be a seamless experience. We just login, choose the template we customized and use the fantastic UI to make an email.

Another nice touch is the “edit and resend” feature. Because most of our emails are the same format we can grab a previous one, edit it and send as a new email. Saves us tons of time.

This whole process wouldn’t be nearly as automatic if there wasn’t a bridge between our subscribers in ExpressionEngine and our list in Campaign Monitor. Thankfully, the Campaigner Addon syncs everything up nicely and saves a whole lot of manual re-entry’s before emails go out.

Really, only $1,000 worth of expenses?

Ok, so once you start factoring the massive amount of time it took to research all these pieces, fit them together, design it and build it we put in way more than that. And don’t even get us started on the time to create the actual content. Scripting, shooting, editing, writing music, animating graphics, sending emails. Whew! But we were able to do almost everything ourselves so we just slept less and got it done.

And now we have a platform ready for some serious growth that doesn’t require a lot of babysitting from us. The benefit of using such great third party services like Vimeo and Campaign Monitor is that they are incredibly easy to use, powerful and constantly improving. There are several services that try to combine all this into one package and deal with all these pieces themselves. They are also expensive and an absolute nightmare to use.

So here's our thought: We've built, used and tested this setup for a couple of months now, and we know it works. If you are interested in creating your own video membership site, and could benefit from using our specific setup we're open to selling it and providing support. Get in touch to find out more.

July 16, 2012

Design, Business, ExpressionEngine


  1. What a timely post! I’m sending a quote in to a client for a site that will use EE and Membrr. Thanks for the heads up about OpenGateway. I’ll add some padding in there for that in my quote.

  2. This was a great write up! It’s amazing how much work goes into a site like that and you never truly appreciate it until you are told and know all the details. Most people just want it to work… but knowing how it’s put together is what I personally love. Great post!

  3. @Ian Pitts FYI OpenGateway is included with Membrr - or did you just mean to get it setup? Then yes. Very yes.

    @John DerrickThanks, sir! We certainly like to do things our own way. smile

  4. Great read, and your website rocks, but wanted to bring it to your attention that in your title “ExpressionEngine” has three s’s.

  5. @Kacey Good catch , thanks!

  6. Great info, guys! I was curious what you were using for Kicktastic and have looked at Membrr in the past for clients. Glad you were able to find a solution that kept EE in the picture. Right on!

  7. @Ian Pitts

    What a timely post! I’m sending a quote in to a client for a site that will use EE and Membrr. Thanks for the heads up about OpenGateway. I’ll add some padding in there for that in my quote.


  8. You know it’s funny. I was going to use the exact same add ons and even Stripe to build a member site with EE,  but it was too expensive for me at the time. Now that I know it works well, I definitely have the confidence to start up the project again. Thanks again 47m!

  9. @Aaron Clayton Awesome!!!

  10. Hi guys! Now that you’ve been using this setup for a bit, would you do anything differently if you had to start over?

    I’m about to build a similar site for a client and was curious what pitfalls you’ve run across.

  11. @Josh KG You may want to check out something other than Membrr - we’re finding it’s a pain to manage subscriptions and deal with expired credit cards. Looking into other options at the moment, actually.

  12. Curious to hear about other options. I’m currently evaluating Membrr vs… anything else really, having trouble finding other options.

  13. @Michael LeBarron Yeah CartThrob has a subscription, but it’s crazy expensive compared to Membrr. Memberr isn’t bad, just has a few things that are giving us grief. We might have jumped the shark looking for something else.

  14. Do you think the fact that you take monthly subs highlights the problems with regards to expired cards? I was looking at Membrr for a subscription site, but was only taking annual subscriptions. Do you think it stands to reason that x12 subs payments as opposed to x1 makes it seem worse?

  15. @Sean Not really. You’re probably more inclined to get an expired card charging yearly than monthly. More time elapsed for it to go out of date. Though you would probably seem to have to deal with them more when billing monthly, you’re right.

  16. This is such a great post.

    1) How can I buy you beer?

    2) How did you manage to tie in Vimeo Pro with the membership account? Specifically, doesn’t Vimeo Pro require you to type in a password to see the videos?

    2a) How did you avoid having people to type in the password?
    2b) How did you prevent people from just passing around the Vimeo Pro url and possibly password?

  17. @David Haha thanks, sir!

    1) I’m more of a root beer or mexicoke guy, but no need, I’m good smile

    2) Vimeo Pro has an option to only allow a video to be played from certain domains. We remove the review URL’s and embedding features when we upload them so you can literally only watch them at, not even at Vimeo unless you’re logged in as us.

    So no passwords for them to type in and no way for them to pass a URL around except for the one to Kicktastic. Hope that helps!

  18. @Jonathan Longnecker

    You are a golden god!

  19. Hey Jonathan,
    Really enjoyed this post. I know its kind of old, but good read still. I’m curious to know if you set up Membrr/OpenGateway on a shared hosting env. or vps.

  20. @Marty We set it up on a Dreamhost VPS at the time. It was a little tricky installing the ion cube thingy, though.

  21. Hi Jonathan,
    Thank you - what a useful post! A potential client has just asked for pretty much the same setup you have. Are you still finding Membrr to be problematic? I see it recently went open source, so I guess there’s now zero support.

  22. @Nick You’re welcome! I’d check out Charge instead of Membrr these days I think. Seems to be cleaner/simpler and have better support.

  23. @Jonathan - Thank you, I hadn’t seen Charge. You just made my day!

  24. @Nick you’re welcome!

  25. I went ahead and followed these steps for a client but it seems that Membrr has since abandoned the program. Unfortunately I’m having issues with the system automatically recognizing a card charge failure and moving that user to an expired status. Any thoughts on this you can share?

  26. @Nate Hamilton It is still open source - and we have one client in particular using this setup for his membership site and all still works for the most part. But yeah it’s not a great platform for future development. I’d checkout Charge instead.

    Otherwise, I think I know what you’re talking about (someone’s card expires/changes and they get bumped out into an expired status) and that’s the expected behavior. I never agreed with it, but that’s just how it was. Basically to get them to renew you have to pass through both their old plan and the new one with a special tag. It takes their old info and starts a brand new recurring subscription. There used to be some great support threads on this, but looks like their tinder account expired :(

    Long story short, the only way for them to get that link is for you to build it on the site, it can’t be done through the emails. And it has to be a different link than the “update billing info” because when they’re not technically a member anymore there’s nothing to update. Super annoying.

Behold our Amazing Portfolio

Check it Out