Membership systems


Let’s work on an audit of systems:


Last I checked I thought the LHS used GoCardless for direct debit payments? Not “barclayscrape”, which I haven’t heard of before.


GoCardless is Direct Debit, LHS uses BACs transfer and some software @russ wrote to scrape their bank account for transactions with matching references to the users.

EMF uses GoCardless, as does SLMS.


Is GoCardless still referenced in the LHS code? I had a dev friend look it over last year and GC is the payment processing option they found.


I believe they were looking into enabling it.

p.s. Barclays Scrape:


Talking to @ChickenGrylls a couple days ago for his podcast series, it felt to me like the big chicken and egg situation of all spaces about having income before getting a space, but not having members because there’s no space was solved when someone knocked together the original SLMS membership system as a kickstarter type thing.

I wonder looking through all these spaces (the majority of which don’t have any form of membership system), how many would be happy with anything that reduced the admin burden of a manual process of reconciling PayPal or other payment methods.


Manually reconciling accounts seems like the only option until you have sufficient IT infrastructure in place.

Are there any banks that have APIs for getting payment info? I know Barclays don’t. They didn’t even know what an API was. How do other subscription-based organisations handle this?


HH uses BACS transfers or cash at the moment,we are looking to move to a cashless payment system, like SumUp in future.


We built our own system at Teesside Hackspace. It’s a bit hacked together at the moment, so not on Github yet, but the cliff notes:

  • Gocardless
  • NodeJS
  • Database uses AWS DynamoDB (free tier)
  • API runs on AWS Lambda (free tier)
  • Auth uses Auth0
  • Sends emails using AWS SES
  • Listens to Gocardless webhooks and updates membership status
  • Stores RFID data for access control
  • Headless API with a separate front-end app integrated in website

Things we (I) like about it:

  • Small codebase
  • Costs nothing except Gocardless fees
  • We have lots of JS experience
  • Super easy to deploy

Things we (I) don’t like so much:

  • DynamoDB - would probably better off with something SQL based
  • Auth0 is a bit clunky and feels like overkill
  • Not much automated testing
  • If I wrote it again (which I was planning to but might wait and see if we arrive at a consensus here) I’d probably use Typescript (+Nest.js?) rather than vanilla JS
  • Decoupled architecture can lead to bugs, inaccessible to users without JS
  • Gocardless abandoned their JS library for some reason


In this Google sheet, are we assuming that because there is no way to join online, that there is no Membership system?


Added a field for whether registration is remote and/or local.


Short of reaching out to each space that is the assumption I am making, but I am writing down what my findings are in reading their website, we could send our a short survey if we wanted to.


So Hackspace Manchester currently uses a forked version of build Brighton members system tweaked for us to allow for snackspace and fob purchases alongside some general tweaks to make it more relevant for our space.

Things I like about it includes its ability to manage tools and equipment, manage members storage and the handling of all member signups including automatic leaving and suspension if direct debit via gocardless failed or is cancelled and the ability to top up balances and spend that on laser time or snackspace etc

It really has sped up the time we spend on membership administration as members can now do most of the tasks themselves


It was a pain to get working/setup and there isn’t much documentation but I am glad we got over that hurdle as it works well for us

Other downside is we have yet to get the ACS part of it to work for us and had to have a few hacked together scripts to sync with existing systems

We have integrated it with Moodle which we are using for training and inductions including someone signing up for training automatically being enrolled in the correct course on Moodle and hopefully we will be launching the training on that as a live system soon.


barclayscrape is a tool Russs wrote for pulling transactions out of barclays online … iirc they dont use it anymore/now (tho Swindon does)


Re the point Tom made (somewhere) that it seems most spaces dont have a system / its hard to find the registration page - its sorta deliberate - we’d like to meet you before you signup. At least once, so while we have an externally visible URL, its given to you when you visit. It does seem that confuses some of our potential members tho, so I keep meaning to make said system at least more obvious.


I agree with that, but I wasn’t actually looking for a join form, but a page that says how I would get involved, a lot of spaces hide it in About pages for example.


I’m off to bed, but I’ve got the basics of who has and has not obviously got a membership system that isn’t manual.

There are going to be spaces who don’t have public systems and we can’t see, if we can get a better sense of what we’re trying audit then we could send out a survey to all these spaces and ask them how it works.

Also there is this:


It’s a lot easier finding out about the different systems that exist, when someone just gives you a link that points to a list of links!


LHS has used standing orders (with barclayscrape to handle automatic reconciliation) for the last 10 years. There has been some code written to replace this with GoCardless, but that project hasn’t been finished yet.

I would strongly recommend against using standing orders for any new system, for the following reasons:

  • (Most) banks don’t have an API and barclayscrape is a hack which I do not plan to maintain indefinitely. (Although Monzo has just announced business accounts with an API.)
  • People have difficulty understanding how to set up standing orders - at LHS there are frequent cases where people neglect to include their reference number and payments have to be manually reconciled. Also, logging into your bank is usually harder than setting up a direct debit.
  • Having lots of membership payments in your bank account makes bookkeeping complex and most accounting software is not designed to easily handle this.
  • Giving your bank details out increases your likelihood of suffering from direct debit fraud (never put them on a public web page).
  • GoCardless is not expensive, and it’s trivial to get set up with pay links even if you don’t yet have a membership system.


Also, @jonty recently spotted this (new?) project: