Membership systems

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