MembershipNerd — self-hosted membership tool for nerds on a budget

Tomorrow, I will start working on MembershipNerd as a personal project for my 7-day challenge. I want to create MembershipNerd as a self-hosted alternative for newsletter-services like Mailchimp. My reasons for creating MembershipNerd is that I think almost every side-project, however small, needs a way to

  1. let people signup for updates via email (including the ability to unsubscribe)
  2. let you, as the project owner, manually send out updates (via email) to your “subscribers”
  3. let you, as the project owner, create and send out a series of automated messages (drip campaigns)

These are the core features.

Additional feature you might want will depend on what kind of project you are building, for example:

  • have paid memberships
  • different membership tiers
  • trial memberships
  • offer different content / features to different member tiers
  • provide a chat / forum or other form of online community to your members
  • etc.

A minimal version

For MembershipNerd to be useful to me, it needs to have at least feature 1 and 3, i.e.

  • feature 1: a way for users to signup (and unsubscribe), and
  • feature 3: a way for me to create a drip campaign. (I think 2 can be just viewed as a special case of this for now.)

I have said in a previous post, that the purpose of the 7-day challenge is to work on something on seven consecutive days, not to reach a certain outcome. However, I would really like to have a very basic prototype of the core features at the end of the trial. Let’s see how that goes.

The tech stack

Following my own suggestions for choosing the right tech stack, I have decided on these technologies:

  • django / python
  • postgresql
  • docker

For the initial version I plan to generate HTML from django and not provide a REST-API. That should keep things as simple as possible.

See also