Building a Membership Site with Jekyll

- 4 min -
Joe Buhlig

I decided to convert Analog Joe to a webinar membership site a few months ago now. And when I did that, I considered many ways of building the website for it. Most of those would have been quicker than what I am about to describe. But none of those would have given me the flexibility that I now have with the site.

Which is why I decided to go with old faithful, Jekyll. I know the platform and I know how to get what I want with it. Yes, it’s more work to go that way, but I knew the payoff would be worth it.

The only problem was that I didn’t have a good way of tying a membership system to it and restricting access to certain portions of the site. Those require a database of some kind and Jekyll has none of that. But I did solve the problem.

Choosing a Membership Platform

I have looked at a lot of these systems and even built a custom version once. If you’re using WordPress or SquareSpace, the answers are pretty straightforward and you can find tons of information online about it. But if you want to run a static site like Jekyll, your options are limited.

At the same time, it’s a pain if you ever move. If I set up a Paid Memberships Pro plugin on WordPress, but then move the site to WooMemberships, I have a mess in trying to migrate user payments. It requires folks to manually set up a new payment account and you will always lose customers in the process. Not ideal.

In my search for an answer to this, I discovered MemberSpace. They have a mechanism for maintaining the memberships and their status but letting you move your site around from platform to platform. And it works with custom HTML sites! Sold!

The setup with MemberSpace was pretty simple. Just drop in the javascript code and start telling it what to put behind the paywall. That was it.

Granted, I can never let things be without tweaking them somewhat. So I added in some checks for logged-in status to tweak the layout and menu items. But other than that, it was really simple and has worked out great.

Selecting a Webinar Platform

I had two requirements for Analog Joe: I needed an RSVP system and I needed a webinar platform that didn’t require a download. I’ve always found it painful to work with customers or co-workers who need help updating or downloading software to join a conference. It’s not fun at all.

So I went looking for something modern and would fit these two needs. I figured it would be a good idea to have these two pieces tied together in webinar software. And there are several great choices in this group.

But at the end of the day, I went with Demio. I chose Demio for its customer service and cleanliness of the UI. Whenever I have a question for them, I get a response in minutes. Even a question on my affiliate status with them led to expediting my application, for which I did not ask. I simply wanted to know where it was in the process. But I’ll take it. Thanks, Kelly and Ana!

One of the bonuses I discovered with Demio was the ability to embed the RSVP form. That meant I could put the form right on the Analog Joe website. But that also made it super easy to restrict access to the registrations. You know. Since it’s a paid site.

Restricting RSVPs

To keep the webinars available only to paying members, I embedded the registration form from Demio on a separate page and then copied the link to that page. That link then goes into MemberSpace as a paid member-only page. That way it’s only subscribers who can register for the webinars.

And since Demio creates user-specific webinar links, the join links cannot be shared.

Restricting Video Access

This works similar to restricting the RSVP pages, but with one twist. I wanted the video pages to be visible to the public, but the video embedded on the page to be visible to subscribers only. Again, this is where the magic of MemberSpace comes in. They have a thing called Content Links. This is where you can post the link to a video to MemberSpace and it will create a unique URL to use instead of the video link.

In my case, I’m posting the videos to Vimeo and restricting them to That way they cannot be embedded anywhere but my paid site. But instead of using the Vimeo embed, I simply add the link from MemberSpace instead. If the user is logged in and has access to the video, it will show the video. If they do not have access, the user sees nothing. Perfect!

It took me about a month to pull all this together. Yes, there are ways I could have done this quicker. But I know the future of what I want Analog Joe to become and I wanted the flexibility to change and iterate the site over time. The best way I know to get that kind of control is with Jekyll. I know it well and have been using it for quite a few years now. So it only made sense to me to go that route.

At the same time, I know that the architecture I now have in place will allow me to make portions of the site free and others paid. But it’s super simple to choose which is which. There’s a lot of value in that simple concept.