Disposeamail Re-launch

Disposeamail.com Re-launch: The Spam Never Stops

Over the holidays, I spent about 20 hours spread out over a few days to build and launch the new Disposeamail.com. Go check out how an inbox looks (in this case, asdf@disposeamail.com).

But wait. Why would I launch a new project when I just recently committed to concentrating on a single project? Because I wanted to learn and experiment with a few things that will ultimately help me with my main project. Namely: New methods of Node.js scaling and deployment, and experimenting with some new JavaScript features and build systems. I have already learned a lot on those two fronts just making and deploying Disposeamail that will get integrated back into ChurchMint and other projects over the next few weeks.

Some Technology I Learned Building The New Disposeamail

Here’s a short list of things I learned more about just by working on and launching Disposeamail:

  • Streams – I don’t have the opportunity to use streams that often, but in this case it was critical. Disposeamail uses streams to pipe all incoming emails straight to the database and discard any attachments without taking up any memory or diskspace while doing it. Proper usage of steams are absolutely critical to the fast performance of the Disposeamail service and my ability to run it on a shoestring side project budget.
  • Production Deployment – I have deployed many Node.js web apps, but so far none that run multiple services from the same codebase. Disposeamail runs the web service on one port, and the SMTP service on another port that I pipe all incoming emails to. These are both part of the same codebase and application, but must be deployed simultaneously as two separate apps listening on two separate ports. With PM2, setting this up was very simple and straightforward. I also got experience setting up Let’s Encrypt with nginx to auto-renew SSL certs, and more. All very valuable experinces for me and my future running Node.js based web services.
  • JavaScript Build Systems – Though I use Gulp.js on other projects, I have never configured my gulpfile to work with watchify and auto-run the build on changes. I have previously always run a separate file watch command with fsmonitor that re-triggers the whole build. This works, but is slower than properly configuring watchify so it can do incremental builds instead of full builds on changes. This was the first thing I added to my other projects, as it speeds up the development feedback loop significantly.
  • ES6 Tagged Template Literals – After using React with server-side rendering in ChurchMint, I wanted to try out a much lighter-weight solution with new ES6 template literals to see how it would work compared to other methods of rendering templates in Node.js like EJS and Jade. I came up with a great solution for all my templating needs within a few hours, and render all the views in Disposeamail on the server with composable functions instead of having the overhead of templating engines with their own syntax. A win for speed, and a good solution that I am very happy with overall.

The Spam Never Stops

One thing that led me to re-launch Disposeamail besides learning was that there were still (surprisingly) lots of incoming emails to the disposeamail.com domain. At the time of writing, Disposeamail has 5,126 emails stored, and has been online for only 3 days. That’s an average of 1,708 emails per day for a site that has been offline for 5 years. That level of spam is crazy for a site that has been dead since December 2011. Most reputable email senders who care about email deliverability automatically remove emails from their list when they bounce. It is clear that spammers (and even some well-known companies) either don’t care about hard bounces, or don’t even check for them.

Once your email is on spammer’s lists, the spam never stops coming. If a service being completely shut down for 5 years doesn’t stop the deluge of spam, nothing will.

Protect Yourself

Disposeamail is basically spam protection. It’s not always useful in all situations, but it can be useful in certain situations where you think there’s a high chance you will get spam email from certain services you sign up for and use. It is the unfortunate reality of the world we live in today. Protect yourself out there.