UnsubMe came about as a result of our cluttered inboxes, and our desire to make it easy to get rid of the newsletters that have plagued them. We started work on UnsubMe at McHacks 2015 (under the name Unsubscribe.Me), where we delivered a demo of what our service could be given a little time to integrate user sign ups and some stability enhancements. During our demo, almost every person we spoke to said that they wanted to use our app, which told us we had targeted a real pain point for people. The feedback we received pushed us to keep working on UnsubMe and make it accessible for as many people as possible.

What it does

UnsubMe uses the ContextIO API to search users' inboxes for newsletters (emails sent with an unsubscribe header). We extract the links in these headers to make it as easy as possible for users to unsubscribe from the newsletters they no longer wish to receive.

How we built it

We built UnsubMe using NodeJS + Express, hosted on RedHat OpenShift. We used many technologies usual to a node app, like Passport for authentication, Mustache for templates, and of course, the ContextIO JavaScript client library.

Challenges we ran into

One of the major challenges we faced was the performance of our application. Our original system parsed the email bodies to check for unsubscribe links in the text of emails, however we found (perhaps unsurprisingly) that downloading up to 100 emails was quite slow - definitely too slow for any user to stay on our site and actually use UnsubMe. To work around this, we needed to compromise by not parsing email bodies, but just checking unsubscribe headers, which makes our application fast, even though it gets some false positives and misses one or two not-entirely-compliant newsletter senders. We plan to work past this in the future by batch processing newsletters as a background job, and alerting users when we have found more for them to unsubscribe from. This will aid in user retention, by allowing us to reach out to users after their initial interactions with UnsubMe.

Accomplishments that we're proud of

We're very pleased with UnsubMe in its current form. It no longer has performance issues, it is very simple to use, and it is very stable. We are also very proud of the multilingual capabilities of our application. As non-native French speakers, writing the initial translations was very rewarding and represents a milestone in our development as French speakers. Obviously, our translations needed to be proofread by native speakers, but for getting the ball rolling on localisation, it does the job.

What we learned

One very important thing we learned, was that our what might make sense to us, may be very unclear to our users. For example, our "getting started" page caused many people to pause and question what they were looking at. Lots of "what?" and "uhhhh". Some were even so discouraged by this page that they totally abandoned the site. For us, the page was very clear, but by listening to our users we found that we needed to be more clear and the resulting guide is much more clear.

What's next for UnsubMe

UnsubMe has a big future ahead of it. We're going to implement a more intelligent newsletter ranking algorithm, by analysing factors such as the read to unread ratio for a newsletter and whether or not Google has marked messages as "priority inbox" (they've already done the machine learning for us!). We also would like to integrate support for sending unsubscribe emails on behalf of our users, for newsletters that send "mailto" links instead of hyperlinks. As mentioned above, we're also going to implement a background job that checks users' inboxes for unsubscribe links in the bodies of their emails so that we can improve our service's newsletter identification capabilities, as well as improve our user retention.

The big picture for the future of UnsubMe is it being the landing page for email unsubscriptions. While other newsletter sending services collect statistics on unsubscriptions for their customers, UnsubMe has direct access to recipients' inboxes. On other services you can see insights like: "100 users have unsubscribed this week, 95 of them selected 'I no longer want to receive these emails.'" In the future version of UnsubMe, you would see "100 users have unsubscribed this week - 95 of them have a common subscription." This would provide an unprecedented level of insight into unsubscribing patterns.

Share this project: