DEV Community

Cover image for The Complete Beginner's Guide to Email Marketing
Garrett / G66
Garrett / G66

Posted on

The Complete Beginner's Guide to Email Marketing

Note: This is old content from I am no longer pursuing a digital marketing career, but I didn’t want the content to go to waste, so I’m relocating it here. I hope the community finds it useful.

Table of Contents

0. Table of Contents
1. What is email marketing?
2. Why email marketing works for developers.
3. Choosing an email newsletter provider.
4. Your welcome email.
5. Setting up automations.
6. Getting people to sign up for your newsletter.
7. What to send in your brand new email newsletter.
8. When to send out your newsletter.
9. Legal stuff.
10. You’re ready to get started!

What is email marketing?

Email marketing is, for a developer, using email to get people to use your software. It doesn't matter if the software is brand new or just has an update. This is the best way to stay in touch with people who are using your software and want to know when you release a new one (or just an update).

Everyone complains that they get way too many emails every day, but email marketing is still the best way to reach your current users.

If you're making software, you can use email marketing to build trust and authority while warming up new and potential users to check out your software.

If you just want to code for another company, it's a great way to get leaders interested in hiring you.

The most important part of email marketing is that you're already in their mailbox. That's the proverbial "foot in the door". Unlike Facebook, Twitter, or other social media platforms, you don't have to worry about email going away.

Not that those particular social networks are going anywhere soon, but...would you buy stock in MySpace right now? How about Friendster? Sometimes sites lose popularity or go out of business.

Your email list will never go out of business. Unless they unsubscribe or close their email account altogether, you will always have your foot in that door.

Why email marketing works for developers.

When someone visits your website, they're not committing to anything. They're just a passerby, seeing what there is to see. A tourist.

They're reading your content, and hopefully enjoying it, but they're only a back button press away from never seeing your website ever again. That's one decision, one click, less than one second that you could lose a potential user.

This is something we want to avoid as much as possible. We want them to use our software, and they won't make a purchase (or hire) until they trust us.

They have to trust that the software will be worth the money. The users have to trust that their problems will be solved with our products.

Our site visitors won't trust us until we've proven we know how to make great software. For most people, that's going to take more than just one visit to one page on your website. We want them coming back.

Email is the best way to get them to come back.

Once you're in their inbox, there's a lot of opportunities to get them to come back to your website and use your software.

If you're looking to get clients (or companies) to hire you to build software for them, I recommend you provide content more on the educational side. This will build trust.

If you're selling software, send them some free content. Teasers or maybe some background info on the development. You have an excellent opportunity here to provide content beyond the software you've already created.

I generally don't recommend offering discounts, but if that's something you want to do in your business, email is the way to get that information to repeat customers, or people who were just on the fence and want to give your software a shot.

Choosing an email newsletter provider.

There are a lot of different email marketing providers out there so it can be very intimidating to pick one when you first start taking a look at them all. This is particularly true when you don't really know anything about email marketing.

You don't want to just run with your regular email service, like Gmail, and CC or BCC everyone. That's going to cause a lot of headaches.

Running a newsletter manually may also be not allowed by the email service provider.

While we're talking about it, it's also a bad idea to use a Gmail as a professional email. Get a website and get a email address. Or use something like Protonmail or Tutanota for security reasons.

My main piece of advice here is that you get what you pay for, most of the time.

Personally, I use and recommend ConvertKit (affiliate link). It's not free, but it is an affordable investment if you're serious about making software and getting it into the hands of users.

ConvertKit is great because* it's super easy to use and has really great automation features*.

I'm a huge fan of automation because I don't like to have to do things more than once. It's also useful for setting up automatic income (which I will teach you how to do later).

Who doesn't want to make money while they sleep? Smart email marketing with automation can get you there quicker than you may think.

One of my favorite features is Sequences, which I used to create a cool welcome email sequence that actually generates some revenue. With some tweaks, it'll make even more revenue in the near future.

ConvertKit is my recommendation for any dev who takes their software business seriously. Whether you're looking to get hired to build software, or you want to sell your own software, this is the service I use and recommend.

For a free alternative, I used to use MailChimp. MailChimp is free, but I find it difficult to use and not user-friendly at all.

For someone new to email marketing or digital marketing, you might find it even more difficult to figure out. I know this because it's the first service I used.

It won't be worth your headaches getting starting and trying to figure everything out.

But, since there are so many headaches...I'll get you started by giving you the template I use for my initial welcome email.

Your welcome email.

The welcome email is the first email that someone receives after signing up. It's extremely important because it's where you get to make a good first-email-impression.

Obviously, you've already made some sort of first-impression with the subscriber because they've already decided they trust you enough to give you their email address. Now, you need to make another first impression with your emails so that they don't regret it and unsubscribe.

Losing subscribers is no fun.

I've set up a template you can follow with explanations of each step:

  1. Start with welcoming them to the email list, and reminding them why they signed up. Sometimes people forget.
  2. If you offered some sort of bonus for signing up, like a free demo of your software, give them a link to access it.
  3. Tell them a little about yourself. Why you're qualified to be sending them newsletters, software you've built in the past, and any features (magazines, podcasts, etc) you've been in.
  4. What they can expect from future newsletters. Talk about what kind of content you send and how frequently (hint: you should be sending valuable content at least once a week).
  5. Tell them about other places they can follow you such as, Github, Facebook, Twitter, etc.
  6. Ask them a question. You'll need to make sure whatever email service you're using allows replies. If you're teaching something through your blog and newsletter (which you should be), this is a good time to ask people what they're struggling with so you can get ideas for new content to write (or, if it's something you've already written, reply back to them with a link!).

Using that template will get you started with a good welcome email. You can always tweak it as time goes by.

Then, you need to set up your email service to send the welcome email automatically. I set my welcome email to come an hour after they sign up.

Setting up automations.

I have a firm belief that if you have to do something more than once, you should automate it. Luckily, your email newsletter service most likely offers some level of automation.

For example, ConvertKit has two different types of automation: the ”Sequences" section and the "Automations" section.

I do find it a bit confusing that one is actually called "Automations" and the other is not, but both are forms of automation and you'll see how in a minute.

Sequences are a series of emails that are automatically sent out at predetermined amounts of time. For example, my drip newsletter sequence has many emails that are spread out with a week between each email.

I have an automatic weekly newsletter. It's basically set and forget.

I've also used sequence to create free email courses.

The first email goes out immediately after someone subscribes to receive the email course. After that, ConvertKit sends each lesson one day apart from the last email.

In ConvertKit, email sequences can be set to be anywhere from hours, to days, to weeks apart. This is handy depending on what you need.

For one of my old email courses, one email asked a question where the user could select one of three options. If they didn't select an option, they wouldn't receive the next email. It was required to continue the course.

I set up reminders at a week, a month, and six months if they didn't click one of the options to continue the course.

The Automations section has a lot of features that I will someday write a whole blog post about itself. These features include tagging subscribers, integrating other platforms and services, and more.

For the sake of this already pretty long post, I'm only going to discuss tagging subscribers because that's something I have found great use for.

Tagging subscribers helps you identify which subscribers are interested in what aspects of your business and newsletter.

For example, suppose my website and newsletter generally cover two topics: building a software business, and my personal software. I also offer coding services, and in the future will offer ways to purchase products. In my welcome email, I could ask the subscriber:

Do you want to receive news about:

  • Learning to build a software business
  • My software and other projects
  • Both!

And then I set a link on each one that takes them to a separate thank you page with more information about that subject.

I use Convertkit’s automation to tag which subscribers click on which.

When I'm sending out emails about building a software business, I will segment those emails to only go to those who clicked on that option ("Both!" doesn't get a link and is just the default; no need to tag those people).

That way, subscribers aren't getting emails that are irrelevant to their interests, and they're less likely to unsubscribe in the future.

Getting people to sign up for your newsletter.

Here's the hard part: getting people to sign up for your email list.

It's a foot in the door of their private life. Email inboxes are sacred and aren't just shared all willy-nilly by most people.

However, there are people out there with hundreds of thousands, even millions, of email subscribers. How do they get them? There's a few techniques marketers use that are tried and true.

Get your first 100 subscribers:

First: just ask.

It's that simple. Open up your phone and flip through the contacts list. Anyone you know on there you think would be interested, ask them. Just shoot them a text that says something like:

“Hey, I'm starting a newsletter for my website where I share my coding projects, and I thought you might be interested. Can I add you to the list?"

If they say no, thank them and don't bug them about it. If they say yes, respond with something like:

“Awesome! Excited for you to see what I've been working on. What email is best for you?"

Repeat the process with Facebook friends, Twitter followers, and anywhere else you can think of. Anywhere that you have contacts who you think might be interested, just ask them.

Don't waste time on people you know wouldn't be interested.

Get your next 100 subscribers:

The next thing to do is to get all the people who are visiting your site to sign up.

Your email newsletter service should offer some easy copy and paste sign up forms that you can just drop into the code on your website.

Lots of marketers recommend you have a signup in the side-bar (if you have one), one in the header (if you can do it without it obstructing the rest of your header), and one at the bottom of every blog post and page.

I prefer to skip the header signup to keep everything a bit cleaner at the top. Instead, I'll often put a signup higher up in the blog post, if it makes sense to. I don't try to cram one in somewhere that it doesn't fit, either physically or contextually.

If you're on Wordpress and using ConvertKit, you can actually do this really easily with their Wordpress plugin, which is exactly what I use.

  1. You'll need to go to Wordpress and install and activate the ConvertKit plugin,
  2. then go to you ConvertKit account and get your API key and API Secret key.
  3. Then, in Wordpress under Settings, you'll find the ConvertKit plugin.
  4. Go there and put in your two keys.
  5. Click "Save Changes" and it will refresh with a dropdown of your current forms.
  6. You can then select which one you want to be the default.

In Wordpress, under Appearance, go to Widgets and you can drag and drop the ConvertKit widget into whatever sidebar you want it in.

To have it in the bottom of a post, you can select that option in each individual post, at the bottom of the page below the post text box.

It will automatically have the form you set as default, but you can easily change it to another one, or none at all.

This also works with ConvertKit landing pages.

What to send in your brand new email newsletter.

You've followed all the instructions above. You signed up for ConvertKit. You set up a welcome email. You've even set up some tags to segment your list.

But what do you send?

Updates! Newsletters! Projects you're working on!

Mostly, just things that are relevant to what you're working on, that your subscribers would want to see. Keep in mind their preferred content you've tagged them to receive.

If you're using your blog to teach people what you know, which you should be, then definitely send that information out in your emails as well.

One thing to make sure of is that you don't constantly bombard your subscribers with advertisements of your software and/or other products. That's spam, and it's bad.

Definitely do promote yourself, but don't over-do it.

When to send out your newsletter.

You need to be sending out newsletters at least once a week. This keeps you on people's minds and increases your chances of landing new sales.

Studies have shown that the more emails you send, the better your clickthrough rates. It's important to make sure you don't spam people, though. That's a quick way to lose subscribers.

Marketers have been studying time of day and day of week to send out emails and it varies wildly.

CoSchedule compared 10 different studies and found that Tuesday is the best day to send email, and if you send two emails a week, Thursday is the best day for your second email.

Wednesday was also a popular day.

As for time of day, they found that 10 A.M. and 11 A.M. are great, as well as anywhere between 8 P.M. and Midnight.

I usually send out my newsletter on Tuesdays, but the time is different each week.

Of course, this all depends on your audience.

Your subscribers may operate at a different time.

For example, if you’re a gamedev: Being that your audience is mostly video game players and/or people learning from you how to make video games, they could operate at non-normal business hours (such as college students who stay up all night playing your games).

But, another industry like data analysis could have an audience who are mostly day-job people and thus open the most emails between the hours of 9 AM and 5 PM.

The best thing to do is to* try different days and times to figure out what your audience prefers*.

Legal stuff.

In the USA, according to anti-spam laws called the CAN-SPAM Act, you have to have a valid physical mailing address in your email newsletters. This address doesn't have to be your home or office. It can be a P.O. Box.

It does have to be an address attributed to you where you can be contacted. You can't just pick a random gas station address of of Google Maps.

If you're using ConvertKit, they'll provide you a free address you can use.

I recommend you don't use your home address for safety reasons, unless you've already put your home address openly on the internet. Generally, that's not a good idea at all, so if you can take that down and set up an office or P.O. Box, that'll be a much safer way to do things.

But also, don't use a fake address. One single email in violation of the CAN-SPAM Act can cost you as much as $16,000.

You also need to have an unsubscribe button in the email so that users can easily remove themselves from your list.

There are lots of clever tricks (commonly called dark patterns) some marketers use to confuse people who try to unsubscribe.

The best policy is to make it easy. The people who want to unsubscribe aren't your target audience, anyway, or else they wouldn't want to unsubscribe.

You're ready to get started!

That's what you need to know to get started with email marketing your software and coding skills.

Get out there and start collecting newsletter subscribers!

Top comments (11)

jeddevs profile image
Theo • Edited

Amazing post,
I always thought email marketing was dead, but no more.
A couple questions if I may,

I always find getting emails from companys when I have signed up to their service to be a real pain. How do you avoid this, Does talking in a laidback tone using internet slang or popular internet culture references help (when the market is for younger target audiences or tech enthusiasts). Or should you always remain formal?

More generaly, When working in a market inwhich you don't know what the user is interested in (for more generic,open markets which entice different types of people) how do would you suggest making the post so it interests or at least doesn't bug the user? Is there a way to make custum messages for different audiences or is their no automated way to do so without making your own tech solution based on their internet habbits (on your site) and would doing so violate any laws or be to invasive of their privacy?

Thanks again and a great read!
May I suggest you split these long posts into seperate parts (e.g seperate posts) as that may accumilate more traffic and is easier on the eyes for the reader as well as generally more consumable content. But hey, you're the master!

garrett profile image
Garrett / G66

Great questions!

I always find getting emails from companys when I have signed up to their service to be a real pain. How do you avoid this

I generally use a personal-style brand voice. For any of my companies, the emails are always coming from me, Garrett. I sign everything, and if you hit reply, the email comes back to my inbox so that I can see it and respond. I'm extremely personal about it and I keep formalities out of it as much as possible.

Read more about that here:

When working in a market inwhich you don't know what the user is interested in

Okay gotta stop you right there. If you don't know what your market is interested in, you need to do more market research and set up customer personas. And you need to do this first before any other thing in marketing, because all your marketing will come back to customer personas.

Read more about that here:

(for more generic,open markets which entice different types of people) how do would you suggest making the post so it interests or at least doesn't bug the user? Is there a way to make custum messages for different audiences or is their no automated way to do so without making your own tech solution based on their internet habbits (on your site)

You can automate this in ConvertKit. Here's their features page showing how.

and would doing so violate any laws or be to invasive of their privacy?

In ConvertKit, they have to start the process by signing up on your form, and then there's a double opt-in email that they receive to confirm they want to start the process, so it does not violate any laws nor their privacy w/out their consent.

jeddevs profile image

Thanks for the indepth answers and great tip, I'll definitly adoptusing a more personel voice for it in the future.

Just want to expand on my last point which may have been slightly misunderstood on either my end or yours.

When working in a market inwhich you don't know what the user is interested in

I'm more focusing on markets inwhich everyone old or young needs, e.g paper or supermarkets. But I suppose for the later certain age ranges certaily prefer certain shops (e.g Waitrose -> The older generation).

But in general for these markets how do you discern between them as you only get a limited amount of information about them unless you asked for their age bracket on signing up which would push many potential customers and subscribers away or should you play it safe and just send out very general not user custamized and/or oriented messages.

If I'm incorrect in any of the above, please do correct me.
Looking forward to your reply.
Many thanks,

Thread Thread
garrett profile image
Garrett / G66

I think I could better answer your question if you explain to me exactly what you're trying to do. Are you starting a super market?

Thread Thread
jeddevs profile image

🤣, No I'm just interested as to how it'd differ for a market in whch there is no bias to a certain age range or type of person and those where some just some examples of the top f my head, sorry for the confusion!

Thread Thread
garrett profile image
Garrett / G66

Got it. So, for the super market example, there's a few things going on:

  1. The product brands mostly market themselves
  2. The super markets market themselves as being better than the other super markets
  3. You can have more than one "customer avatar"

Unpacking 1. The product brands mostly market themselves.

A brand product such as Oreo is going to market themselves, and people just know to go to their local supermarket to get it, right? Oreo's customer avatars may be:

  • Kids - ages 6-12, male
  • Kids - ages 6-12, female
  • Parents - with kids ages (see above)
  • Etc

They might even break those down even more since kids at age 6 are into different things than kids at age 12.

They'll create individual content targeting each of those customer avatars.

Unpacking 2. The super markets market themselves as being better than the other super markets

I've never worked for a supermarket so I'm not sure how they handle customer avatars, but for the most part I would assume they focus on adults. They could break those into various customer avatars such as:

  • Parents
  • Single parents
  • Single businessmen (and women, as a separate avatar)
  • Etc.

Again, creating unique content for each avatar.

For example, to advertise to single parents they might say "Our supermarket has the best child seats in carts to keep them safe and sound while you're shopping."

To advertise to a single businessman they might say "All of our cashiers are always on hand to get you in-and-out on your lunch breaks."

These would be two different commercials, or ads, or whatever. Each targeting a different one of their customer avatars.

Unpacking 3. You can have more than one "customer avatar"

By now I hope I have explained well enough that you can have more than one customer avatar and all you need to do is create content dedicated to each avatar. Don't try to make generic content to hit everyone. Separate all of your customers into their own types (the customer avatar) and then when you're creating content, focus on one type per piece of content.

Thread Thread
jeddevs profile image
Theo • Edited

Thank you for taking the time to break this down for me, I was still referring more to the online and email area but I can use what I learnt here and transfer it to apply for that pretty easily! Thx!

Thread Thread
garrett profile image
Garrett / G66

Create tags for each customer avatar. Use the tagging automation mentioned in the guide and then write your emails based on the customer avatars and send only based on the tag.

Thread Thread
jeddevs profile image

Great, Many thanks!

ssimontis profile image
Scott Simontis

You caught on to some brilliant points. One of my favorite newsletters to get is Joe Eames from He makes a habit of sending out e-mails every now and then where pure technical content is not the main focus at all; the e-mail is a chance to check in with readers and see if anyone is struggling and invite them to chat with him about it if they need to.

I recently had a couple days of my life that were crappy enough that a total stranger on the Internet asked if I was struggling with anything and without a second thought I had hit reply and was getting my job search frustrations off my chest, as I was struggling to find the job I really wanted and my bank was not-so-subtly telling me that I needed a job if I wanted a roof over my head next month.

Joe and I went back and forth a little bit and he gave me a three month subscription to the site for free. Not gonna lie, I cried. When you feel invisible to the world, it feels so rejuvenating to know that someone else was thinking of you and thought you were worthy of kindness. I got an opportunity to see his true character and I'm going to be sure to mention my experience vrry positively should anyone ask me about my experience with the site or him in the future.

garrett profile image
Garrett / G66

That’s amazing! I fully believe that putting people first like that is the real key to success. It’s why I’m putting all my old marketing content (like this) here before deleting it from my website, which is turning over to my new business.

PS I’m sorry things are tough for you right now. You’ll make it through!