What follows is a full-length book on how to create a successful blog.

I am a software developer and I've written 1,500 posts on my blog over the past few years. Millions of people have read my writing. And my blog is now one of the top 20,000 websites on earth (according to Amazon's Alexa website ranking tool).

In this book, we will not focus on the "how to install WordPress" aspect of blogging. We will also not discuss how to build your own blogging software. (That's a fun exercise, but not as important as what I'd like to discuss.)

This book will instead focus on developing the right mindset. It will also show you how to get systems in place so that you can run your blog over a long period of time.

The hard part of blogging is doing it sustainably. How do you blog in such a way that you can publish consistently? How do you become a household name in your field? How do you hold your audience's attention over time?

A lot of bloggers struggle with these challenges. There are so many blogs out there with 1 or 2 posts. Or the last post is from 2018 saying "Sorry I haven't published for a long time." With planning and execution, you can prevent this from happening to your blog.

Also, you may be wondering how relevant blogging is in the 2020s. After all, YouTube, TikTok, and Instagram get a lot of headlines in the news. Well I'm here to tell you that blogs are still powerful when it comes to content marketing and getting organic traffic from Google.

The main goal of the book (and yes, you can read the book in its entirety here) is to help you get started with blogging in the right way. So grab a beverage and a comfortable chair. And bookmark this page so you can come back and review, in case you can't finish it in one sitting.

And if you prefer, you can download a PDF and ePub version of this How to Start a Blog book here.

Table of Contents

  1. Framing your blog for success
  2. The benefits of having a successful blog
  3. Pick a goal for your blog
  4. Own your platform
  5. Make the first step
  6. Solutions to common problems
  7. Content is king
  8. Practical content suggestions
  9. Create a system
  10. How to get people to your blog
  11. Expand your reach with an email list
  12. Ups and downs
  13. Making money with a blog
  14. Final words

Framing your blog for success

People communicate and share information over the internet. We use it to look for help. Maybe we try to find the perfect recipe for dinner or the best book we should read this month.

A blog is a tiny website, made by one or a handful of people, with the goal of creating information that will help people.

On this blog, you will write posts. A post is a single page of the website containing some information.

The concept of a blog I'll talk about in this book is different from a diary, where you write about everyday things as they happen. That is something you can definitely do, but it's not what I'll be talking about here.

By blog, I mean a personal site, or a product/company site, where you regularly produce interesting content that can be beneficial to other people.

You want people to be able to find the solution to their problem on your blog.

I want to highlight this point because it's central. Your blog should be useful to other people. Without this fundamental concept, your blog has no reason to exist.

Why a blog does matter

Blogs are the fundamental building block of today's internet. Think about it: we have giant corporations that create walled gardens that people are constantly drawn to, like Facebook, YouTube, Instagram, and Twitter.

Those are places that are engineered get you addicted so that you consume, debate, consume, debate, consume. And if you are in the lucky 1‰, you will be one of the stars of those walled gardens, and you will profit from other people consuming, debating, consuming, debating, consuming.

What are those people consuming? Well, aside from the content, they're consuming their time.

With notable exceptions, much of the content created and shared on the internet isn't useful.

But a blog is one of those rare places on the Internet where you can create something of value without a giant corporation benefitting from your work. You are the owner of your little corner of the world.

I'll soon tell you more about the "own your platform" concept, but here's the gist: a blog matters because it's 100% yours.

Is blogging still relevant?

This is a legit question. Is blogging still relevant in today's world, dominated by social media and big platforms?

Can the underdog still find some space on the Internet? Don't we have too many sites already?

First, we'll never have too many sites. There's less than 1 person creating content for every 100 people. This is a rule for all media consumption: there are ~100 TV or radio stations in a country with 100 million people. Same for newspapers.

The same goes for the Internet. If you start creating, and you do your job well, eventually your content will surface and you will have success. Whatever success means to you.

This is possible with videos on YouTube, podcasts, and blogs, of course.

So why should you start a blog instead of making videos? It's a choice. We can't all be good at making videos, and we can't all have a voice made for podcasts. Similarly, we can't all be good at writing.

But if you happen to enjoy writing and you like the idea of having your own little corner on the Internet, then creating a blog might be what you are looking for.

Should I have a personal blog or a company/product blog?

If you are a freelancer, working solo, or you are a solopreneur, a company of one, you might have a tough decision ahead: should you create a personal blog or a company blog?

There's a big distinction in this. In my opinion, a personal blog is way better because companies and projects come and go. You might sell your company in 3 years.

Your personal brand, however, will stick with you wherever you go. The advantage I find in a personal brand is that you have the ability to experiment and pivot, if necessary.

If you create a brand that's too tied to a product or area, you can't switch without changing the name and domain, so it can be very confusing to people and it's very hard to make it work nicely.

And most likely you'll have a hard time finding a good idea, at first, so it’s always good to have more than one option. That way you don't have to start from zero.

Why a blog and not videos or podcasts?

In the last few years, videos and podcasts have grown tremendously.

Videos, in particular, are very popular. Kids want to become YouTubers when they grow up.

Both videos and podcasts are awesome. I watch YouTube every day and I am subscribed to several podcasts, too.

There's one thing I noticed about those platforms, however. Podcasts are very hard to discover. I only discover new podcasts if I see one mentioned somewhere. Or by word of mouth.

And in addition to having great content, as a podcast owner, a person's voice tone is a differentiating factor that makes me like a podcast or not. You are either born with a great podcasting voice, or you're not.

With videos, it's the same thing. A creator's personality is a unique differentiating factor in a great YouTube channel.

Plus, videos, if made well, require a huge effort in time, energy and equipment you need.

A blog, on the other hand, is something you can make no matter who you are, as long as you can write. You don't need to have that uniqueness that makes you liked on YouTube, and you are not trapped on one platform (YouTube). You also have a great channel for organic discovery of your blog posts (Google). More on this later.

But you don't have to choose one over the other, of course.

Many times creators use a blog alongside a YouTube channel, or a podcast. This is helpful if you use it more than just to cross-post content from one channel to another, but as a complementary tool.

When done well, it's a powerful combination.

Define who your blog's readers are

A blog that's successful and useful to other people is a blog that has a readership in mind.

I'm sure you've stumbled upon those blogs or sites that talk about a little bit of everything.

It all seems very random, and you don't find a reason for coming back to that site, so you forget about it.

If you happen to visit a website that talks just about your favorite topic, you might save it for later in your bookmarks, or leave the tab open to go back to it later.

This happens because the owner of the site is not just writing about everything that comes to mind: they have a specific kind of person they are talking to.

And this is what you should do, as well. Carefully define the kind of person you want to talk to with your blog.

You have to pick a niche.

How to Pick a Blogging Niche

Picking a niche is how you can define what your little corner of the internet will be all about.

It can be all about you, your hobbies, passions, and stories. But then not many people will find it very useful. Maybe one post can solve their problems, but will they ever come back? Probably not.

Because your blog's not about you, it's about your readers.

Pick a niche. A small subject.

Say you're a programmer. You can write a blog about the C++ programming language, write 2 posts a week, and never run out of topics for 20 years. It's probably even a niche that's too broad, not much of a niche.

A better niche would be C++ programming for embedded devices. Or using C++ to build games.

Then filter out this group of people a little bit more. Using C++ to build a 2D game engine.

You can write about that for years, too, but this time if a person is interested in this subject, they will bookmark the site and download everything they can because you are the expert (or at least more of an expert than they are) and they can get a lot of value from you.

Blogging is a a marathon, not a sprint

I want to give you another concept that will frame your blog for success: it’s not a sprint, it's a marathon.

As with everything in life, creating a successful blog takes time.

Creating a blog, per se, is a matter of hours if not minutes. This is why everyone can start a blog.

But creating a successful blog, depending on what you consider "success", can take years, and not many people welcome this fact with joy.

People like immediate, fast success. It almost never happens, unless you are very lucky.

Consider blogging to be your marathon.

The benefits of having a successful blog

We all have limited time to dedicate to our hobbies, families, and friends. So why should you set aside a number of hours every week to work on your blog? And it's not just a few hours here and there. If you want the blog to be successful, you have to dedicate a lot of time.

As with everything in life, you have to evaluate the pros and cons.

Let's analyze the benefits.

Personal satisfaction and gratification

First, blogging gives you personal satisfaction and gratification.

Many people like to build puzzles or to do crosswords during their free time. Or they like to tinker with woodworking or electronic gadgets.

Writing on your blog can give you the same feeling.

Plus, it gives you a sense of accomplishment.

Writing a blog post can be easy sometimes.

Other times it's really hard, maybe because of the subject, or maybe because you can't find your way through your writing.

But when you finally finish it, it's a really good feeling.

You can get your name out

Another thing that a blog can give you is discoverability.

When people search your name on Google, if you write under your own name people will find your blog as the first result. This gives a great impression at a job interview, for example.

And even if you are currently employed, having a blog is like an extension of your personal brand that can help you be perceived as a more knowledgeable person.

It's like writing a book. A book that no one reads is one thing – but writing a successful book that is read by many people is a completely different thing.

Blogs follow the same rule. Some blogs are not very popular, maybe due to the subject or other factors (we'll see more about this later). But some blogs are successful, and others are wildly successful.

You can get in touch with more people

By writing on your blog, you can publish things that are read by people all around the world, and your work can possibly help them achieve what they want.

Not only this is great for personal satisfaction and fulfillment. It's also a great way to be perceived as an expert in your field.

And the more people you can reach and impact, the better it is for you (and them!).

A blog is your platform

Your platform, your launchpad. In today's world, there's just too much noise.

We are bombarded with information from every medium, and it's really hard, as a creator, to stand out.

A blog can be a great starting point for your next project, your next adventure, your next (or first) company. It's yours.

The goal of any product is to be used by people.

Lots of people, possibly. Not everything can "change the world" Silicon Valley-style, but your little project, product, or service can have a big impact on a tiny slice of the people it targets.

But the first steps are always hard, including finding a good idea.

Your blog can be the way you find the initial users for something that you find worth creating.

Put the idea out there. See how people react to it.

You can become an active part of the community

In every community, there is a small number of people that lead, a slightly bigger number of people that contribute, and a larger number of people following.

Think about the community you are in. The 1%, or 0.1%, work on the "core". They organize an event,  build a software project, host a podcast, work on a product. Another 9% will participate and be an active part of the community around it. 90% of the people will just consume.

As a blogger, even if you're not in the 1% that lead, because you don't want that responsibility or power or you can't make the commitment, you can still contribute. You can add your input, and be heard in a world that is eager for people that want to stand out.

Write about that thing you are so enthusiastic about. Create a helpful resource. People will be really grateful for that. Including the 1% or 0.1% that lead but that do not have time, resources, or will to create those resources.

A notable example is Jeffrey Way. He created Laracasts to build training screencasts for Laravel, a programming framework that was gaining traction.

He’s now an integral part of the framework ecosystem and a driving force for its popularity.

Pick a goal for your blog

You can start a blog for multiple reasons. No one has the same ambitions, the same drive, or the same starting point.

You want to get a job

One goal for a blog might be to help to get your first job.

Suppose you are getting ready for your first rounds of interviews as a Junior Frontend Developer. As you are learning the technology and experimenting, maybe following an online course, you document everything you are learning.

I think this is great for 3 reasons:

  1. you reinforce your learning
  2. you build up an online presence
  3. you get better at documenting and explaining technology

As you approach the interview and send out applications, companies will see that you have a website. They'll find that you are great at explaining technology, you know how to communicate, and you definitely know your stuff.

And this is a great advantage over any other job applicant that does not have a website.

You want to get a raise or a better job

If you already have a job, you might want to step up your career and get better pay, or switch to another niche in the field you are interested in.

Having a blog that positions you as an expert in the thing you want to work on is definitely a big plus.

You can leverage your blog at your current company to reposition yourself as a senior developer.

Your colleagues will look up to you and your writing and will perceive you as an authority in the field.

You want to get better/more clients

If you are not interested in getting a job and prefer being the independent freelancer with a queue of prospect clients lined up, blogging can be a game-changer for you.

I experienced this first-hand when I started my career in tech.

I started my career by finding work on freelancing sites. It was hard to compete with freelancers all around the world who were much more experienced than I was in many cases. And sometimes they were located in a lower cost of living area, which allowed them to provide the same service at a fraction of my rates.

I started a blog about the subject I was specializing on, an open-source CMS, written in Italian, my own language, and people from Italy slowly started to perceive me as an expert. They were more than willing to pay a premium to work with a person that spoke their language, worked in their timezone, and was one of the few experts in the field in the country.

My blog was key to this because people searched for topics they knew they needed help with – and they found me.

At some point, I was even able to turn down client proposals because I had too many requests. I could choose the ones that I believed were better for my business and more interesting to me.

You want to demonstrate your expertise

A common benefit to either getting a job or freelancing clients is this: a blog helps you demonstrate your expertise and expose what you know to other people.

Some people are more naturally inclined to show off their abilities.

Sometimes, depending on culture and perception, we can even think of them as more capable than what they really are.

Some other people are less inclined, perhaps because of introversion or shyness.

Blogging is a great way to demonstrate your expertise even if you're not naturally inclined to raise your hand in public. This is because it's a medium that has very low friction compared to, for example, creating videos that show your face on YouTube.

You want to document your learning

A great goal for your blog could be to document your learning. Perhaps being more competitive in the job market is not something you are interested in right now, or you just want to write about your hobby.

A blog is a great track record for everything you learn.

I have a terrible memory, for example, and sometimes I just create a blog post to remember how I made something work.

I used to write notes on an app on my computer, but now I default to blog posts because I realized I can help other people by publishing my notes on the Internet.

You want to structure your thoughts and learn more

The way I used to learn best back in school was by creating very detailed notes about a subject.

However I only made them for subjects I was interested in, which in retrospect explains why I was good in some classes and bad in others.

You can use your blog as a way to learn better.

I am a huge proponent of learning through blogging because it works.

I use blogging as a way to learn a subject and at the same time help other people.

When I write a new blog post I am forced to create a mind map of the subject and I try to frame it, before writing about it.

In this way I learn much more than I do when I read a book or watch a course without taking organized notes about it. And as a side benefit, I end up with a new blog post I can publish.

You want to become better at explaining things

A great benefit of blogging is that over time you'll become better at explaining things.

You will take fewer things for granted, and you'll think more from the point of view of the person who is listening to you, rather than just writing a bunch of words to be perceived as an expert.

This will help you tremendously in your career and as a person.

You want to grow your audience

A great benefit of having your own blog is that over time you'll start to build an audience.

As with many things, the more time you dedicate to it, the more your audience will likely grow.

People might get to know you. Recognize your name. You will not become famous (except in rare cases), but this might not be what you want, either.

That's not what an audience is for. And honestly, I see many developers raise an eyebrow when marketing subjects come into play.

An audience is a great place to test your ideas. An audience can help you figure out something. An audience is your group of people, the people that trust you and that can help you move to the next level.

You want to express yourself

A blog does not need to be a means to an end.

My favorite blogs are the ones that are playgrounds for creativity and expression. Especially when applied to programming and computers in general.

A blog is a great way to have a track record of all your past creative projects.

Your own centralized creative hub.

Own your platform

Your blog is the operational center for your future. Your platform, your headquarters. Everything else should bring you to your site.

Your Facebook page, YouTube channel, Twitter, Medium, your guest posts on other blogs, and the content you stream – all are tools to connect people with the content of your site on the Internet.

The website can be made with any technology you want. It does not really matter, provided that it’s on a domain that you own, and that you can change as desired.

You should have complete freedom over it: you have to be able to contact your users whenever you want, you must be able to extract all the data from this platform. Also, whenever you want to, you should be able to move away to a different platform with all your content.

Lastly, you do not have to be at the mercy of other people decisions.

The platforms of other people

There are many ways to sell online. For each type of product, there are a number of options, and while sometimes you can sell things in the way you want, sometimes you need to work with a platform managed by someone else.

For example, if you sell digital books, you will, of course, sell them on Amazon Kindle, which probably represents 80% of the market.

Do you sell physical products? In addition to your own e-commerce, you will want to sell them on Amazon too, as it’s a huge market opportunity.

Do you make mobile apps? You will need to sell them on the App Store if you target Apple users, or on Google Play for Android.

Here, in some of these examples, it is clear that sometimes you have choices and sometimes you have to take a mandatory road to actually sell something.

You can’t distribute iPhone apps through your site. If you build desktop applications for Mac, on the other hand, this is possible, but you might also want to join the Mac App Store, which in this case is optional. Apple sets the rules, but it gives you some visibility that you would not get without being in the App Store.

All these great distribution systems such as the App Store, Amazon, Kindle, and many others like Etsy or Alibaba, are platforms. Other people’s platforms.

Benefits of using a platform managed by other people

There are, of course, benefits to using a platform managed by other people. It provides a virtually limitless user base, customers visiting the platform already have an account, and in many cases they just need to press the buy button.

In general, not managing your own platform saves you worry about having to manage a huge number of things.

Disadvantages of using a platform managed by other people

But there are disadvantages of using a platform, as well. You have to comply with the rules the owners impose, and the customers are not yours – they are the platform's customers. So you might struggle to create a relationship with your customers.

You also have little room for your branding, as everything could change from one day to the next. In some cases you have little control over your prices, and you'll have to pay commission to the platform for each sale you make.

The platform sets the rules

A platform is not just the place where people turn into customers, but it is also the place where you can find and interact with them. Facebook, Instagram, and Twitter are platforms, phenomenal platforms, but still platforms built by others.

A few years ago, having a Facebook page with 10,000 fans and writing a message on the page was enough to show this message to a vast percentage of those people. Unfortunately, this has changed today because the Facebook platform has changed. Now we are lucky if we reach 10% of our audience.

The only way to reach more people who like your page is to sponsor posts. So you have to pay Facebook to communicate with your own fans: this is an example of what it means to build on another property.

This is not to say that you should not have a Facebook page, that you don’t have to invest in Facebook Ads, or that you do not have to interact with people on Twitter.

You should do these things if you're trying to build an audience. The market imposes them on you, because you find people in these places. But always try to use these large containers to find people and bring them to you.

And it's important to always have a way out of a platform, and not to be completely dependent on it.

To do this, you have to push users to come to you through all the channels you can take advantage of.

You have to create your own platform.

Use your own domain name

Your domain name is very important. I use my own name for the domain: flaviocopes.com.

Your domain is like your address.

Except that a real-world address changes when you move somewhere else.

Your domain, on the other hand, is yours forever, regardless of your physical location. Like your email address.

When you publish things on your own website, under your own domain name, you are building virtual real estate and generating value that can last for years if not decades.

The way things work for search engines, now and for the foreseeable future, is that quality links pointing to your website make the domain more valuable.

If you publish under a domain name that's not yours, you are effectively working for other people, in exchange for something that might appear convenient for you, like a nice way to create the first page.

But if you take the time and put in some work beforehand to set up your own site and get your own domain, it can pay you a lot more in the future.

Make the first step

The first step is always the hardest. In anything you want to do. Running. Coding. Cooking. Blogging.

In this chapter, I want to make sure you are well equipped for your first step when you’re ready to dive into blogging.

Pick a domain name

There is one very important thing you need to do before you can create your blog. You need to choose a domain name.

You can notice 3 patterns for domain names. People have their own name/surname combination like I do with flaviocopes.com. Some people like to have a fantasy name or their nickname. Totally fine, too.

If it's cool and you can create a brand out of it, it's great. Like codinghorror.com. Other people like to have a more general brand, like css-tricks.com.

The good aspect of this is that people know the content of the blog just by looking at the domain. The downside is that you are kind of forced to stick to that topic forever.

For example, css-tricks.com has long stopped talking exclusively about CSS, and other topics like JavaScript, SVG and others are very often covered.

This is kind of controversial, but I think your own name, or brand name with no direct attachment to anything specific, is the best and most future-proof way to create a domain name.

With one caveat: if you use your own name, you'll never be able to sell the site to someone else, or transform it into something "more" than just yourself with some guest posts here and there. But there are notable exceptions as well, like raywenderlich.com.

If you create a specific domain name that reminds people of a technology or hobby in particular, on the plus side you'll be able to sell it when it's successful to a bigger brand.

I started posting on my blog frequently by talking about the Go programming language. I later switched to a completely different programming language, JavaScript.

But because I used my own name and domain, I did not have to change anything. If I had a domain name like startprogrammingingo.com or something similar, there's no way I could've just switched to talking about JavaScript, or Arduino.

The whole project would have sunk because the day I stopped my work on Go, the site would just end its life with that very specific domain.

Since I use my own name for the domain, whatever I want to write about 10 or 20 years from now will be perfectly fine.

If you already have a domain, maybe used in old projects, and you think it can work fine, that's even better.

Domain Authority

There's something called domain authority that is really important. Because that's how Google determines your site's value, and it's fundamental in how Google ranks web pages in its results.

One factor in domain authority is the domain's age. Older is more stable and more trustworthy to Google.

And when you're creating your domain, try to get the longest expiration date you can. That's a factor, too. Google basically detects your seriousness with the project. If your domain expires in 3 years and a competitor's in 3 days, maybe your domain is better in the long term.

I mean, we can't really know how the Google algorithms work, but we can try and make sure we tick all the checkboxes.

That can make the difference between a site that's never visited, and one that gets 10 visitors a day. Or one that gets a few hundred visits a day to one that gets tens of thousands.

Choose a blogging software (don't build it!)

I personally use Hugo to power my blog. It is built using Go, it is very fast, and has some limitations on the things you can do. This means I can avoid distractions and I can focus on the writing.

I see many people, especially developers, who start creating their own blogging software from scratch.

I think that this a bad idea.


Because the moment you start is the time that you have the most energy. There will not be another moment in the lifetime of your blog where you'll have the same enthusiasm and drive to work on it.

And if you channel this energy towards something so futile, in this case, like building the software, then when it's time to actually write the content you'll have very little time, very little energy, and very little drive to craft great content.

Plus, you'll have to work on bugs, handle updates, and more, on your own. It's much easier to let others work on maintaining popular software used by thousands of people rather than reinventing the wheel.

Choose a minimalistic stock design

The second mistake, I think, is to work on the design before working on the content.

Just as developers like to build their own software, design-oriented people want to create their own design. It's logical, I get it. But in this scenario, at the beginning, it's just a distraction.

My suggestion is: pick a stock theme, the simplest you can find.

The more minimal the theme is, the better.

Remember to keep the focus on the content. Not on the blog engine, not on the theme, not on plugins...on the content.

I have a couple blogs built using the default Ghost theme, which look very professional. In the niche they are built in no one knows what Ghost is – let alone do they know that it's the default theme.

Also, no one cares. Except you.

You can work on the design later on. There's always time for that.

Create the first 3 posts

Right after you have your blog idea, write the first 3 posts. You can write them in a normal plain text editor, and move them later to the blog platform you chose.

I like to use Bear (https://bear.app) to create my drafts. It autosaves, it is beautiful and intuitive to use. But it does not really matter. The thing I want you to focus on is those 3 posts.

Why exactly 3 posts?

Because now that you are so pumped to create your blog, it's the easiest time to write 3 great posts. If you create only one, maybe the second will be deferred until tomorrow, then to the day after.. and you'll be left with a blog with a single post.

Two posts... kinda the same. 3 posts seem like a good number to me.

Once you have those 3 posts, it's time to publish them. My advice, in this case, is not to publish them all together at the same time. Instead, you should schedule them.

Schedule the first 3 posts in advance

I've had several people ask me how can I be so consistent with my blogging. The best suggestion I have is to create a habit. Habits are a very hip and popular topic nowadays, with many books published on the subject.

I'm not an expert, but I noticed that once a habit is established, it's really hard to break it.

Use this little hack to force yourself to write blog posts. Once you decide your perfect schedule (twice a week, once a week, twice a month, once a month...) then schedule the 3 posts you wrote so that you make a little buffer.

Suppose you write once a week. Publish the first post immediately, the second next week, the third the following week.

Now, you can relax and have a little party because you can launch the blog. Plus, you already have content written for the next 2 weeks and you can start planning other posts.

All the other posts you will write will be queued after the posts you wrote in the beginning.

Don't be tempted to add a new post in the middle of your planned schedule: there will be times when you can't write due to limited time, or you will have a low energy week. The buffer will be helpful to keep a consistent publishing schedule.

One thing that is key here is this: once the schedule gets full enough and you can look back at a long streak of posts, all very consistent in their publishing date, and you will start to feel a little pressure to not break the streak.

Transform this little pressure into a positive push towards staying consistent. If you have a weekly publishing routine, at the end of the year you will have 52 blog posts written, which would be a major accomplishment.

Keep going this way

If you do the things I mentioned in this chapter and you just keep going, you will have 99% more success with your blog than anyone else.

Solutions to common problems

Who am I to write about this?

Let's say you are a student. By writing about the subject you are studying, you can reinforce your learning. Writing things down forces you to learn it really well.

Put your ego in chains: people don't care about you. People care about solving their problems. At least on their first point of contact with you, opinions, politics and controversial statements are detrimental to the user experience.

I don't know enough of the subject

You don't need to be an expert.

When I write a technical blog post, it does not really matter if I'm an expert at it. On the contrary, if I'm an expert in a field and I'm trying to write an introductory or beginner-friendly topic, I might not be able to explain that topic very well. This is because I cannot think like a beginner might when they don't know a topic, and so I might assume too many things and not explain that topic well.

If you're not an expert, do your best to absorb a topic and explain it to people that don't know about it. If you're an expert, on the other hand, writing content for other experts might be a good approach. Then you can mostly leave the entry-level content to people that might be in a position to explain it better.

Analysis paralysis

Just get it out there. Publishing a piece of content is much better than keeping it for months, revisiting it, thinking and thinking about it. Just do it.

It's ok to plan, but make sure you don't get trapped by analysis paralysis. The longer you think about it, the longer it will take you to start. Focus that energy on finding 3 good articles to write. That's the start.

Don't be afraid of failing

Resistance is telling yourself that you are not good enough, that you will fail. This happens because you're about to do some creative work, you are about to be exposed to the public, to the opinions of others, and others will think you are not good enough.

Resistance is a powerful force. Especially if you write opinions or personal facts in your blog.

I have two suggestions.

The first is to talk about a topic that cannot be judged. Pick facts. No one can rant that a fact is not correct. Explain something you learned recently.

The second suggestion is to read The War of Art by Steven Pressfield, which is a mandatory read, in my opinion, for everyone trying to do creative work. It really goes into the root causes of resistance, and why you feel it.

I am not good at writing

Are you sure? Or is this just an excuse to bail out of the work that will open so many doors for you, and get back to your room?

This might be resistance kicking in, giving you a nice excuse for not writing.

Are you good at making videos, or feel great at talking to a microphone? Then make videos or start a podcast instead, but don't try to avoid any work that makes you vulnerable to the other people, just because you fear it.

But if you are really not good at writing, your writing will get better in just one way: by writing more.

I don't know English very well

If you want to write for an international audience in the western world, then you should blog in English. I highly recommend doing so, but in some cases, it might make more sense to write in your native language.

For example, if the niche you chose is too crowded and there's no one talking about it in your native language, then it might be an interesting opportunity to position yourself as an expert

If you'd like to blog in English, don't take a lack of English knowledge as an excuse. First, if you are reading this book, then it means you can read English and if you can read it, you can write it.

Also, unless you explicitly write for native English speakers, most of your readers might not be native English speakers, either.

If you are afraid your English is not good enough, and never start practicing, it will never become good.

My suggestion is to just start, and have someone who's really good at English review your posts, so you can learn over time.

Don't give up too early

Most blogs fail. This is a harsh truth. Blogs are abandoned, people forget to renew the domain name, people move on.

Blogs get into this situation because people gave up. They gave up on writing content consistently and frequently, because they did not see immediate gratification from doing so.

If you want your blog to have the chance to become successful, you have to give it the time it needs, and you need to be prepared right from the start.

Don’t be overwhelmed

It's too easy to be overwhelmed by all the things you need to do. In addition to your day job and your family and friends, you need to find the time to blog.

But blogging is not just writing. You need to find the perfect image for that post, you need to share the post on social media, you need to reply to comments, think about future post topics, craft that perfect and eye-catching post title...the list never ends.

It's easy to feel overwhelmed.

That's why I take a minimalistic approach to blogging, which involves no pictures at all unless they're needed in the content of the post, and no comments.

Not having to manage comments frees up a lot of time and mental energy. It also has a nice side effect: I don't have to worry about what people think of my articles. I just focus on the writing.

One step at a time

Don't think you have to rush and do everything at once: open the blog, write 100 posts, create a Twitter account, a Facebook page, an Instagram account, make YouTube videos… it's just too much.

Start with the simplest thing you can do, create a habit, make that habit stick in your day to day and expand from there.

Content is king

Content matters. Content is the thing that matters the most, in the context of your blog.

Let's discuss some of the things I believe are fundamental pillars in a content-centered blog strategy.

Write to your people

Let's say you are great at cooking. Write about your craft: cooking tips, ingredients, recipes, talking to other people that love cooking. Do you love knitting? Write for other knitters about techniques and everything new that you learn about knitting. Love dogs? Create a blog for dog owners.

Anything you do, the important thing is that you identify a group of people that are as passionate as you about a subject, and you write for them.

There's no value in what you write if it's not valuable to other people. Sure, you can write about something that's only appreciated by you, perhaps. But then there's no purpose in spending so much time and effort creating blog posts, is there?

Focus on creating value

Once you identify the people you want to write to, it's key for you to focus on creating value.

Value can take many different forms, of course. It could be how-to posts. It could be sharing your specific experience with some technology. It could be teaching other people how your raw meat diet for your dog works.

It could be telling everyone about your recent trip and what you visited, in detail, so that when someone is searching for tips as they are organizing a vacation, they can find your useful information.

There is no fixed rule on what creates value.

Here's what I do to create value for the readers of my blog: I create easy-to-follow tutorials, written with a beginner's mindset. I do not take the perspective of an expert while writing them.

To do so, I learn a new thing, so I'm not an expert in it, and I create a practical guide.

I know it's very difficult as an expert to write for beginners about the thing we're expert in. This is because we've forgotten what it means to be a beginner and we make too many assumptions, forgetting to mention essential things that are key to understanding a topic.

Other times I describe how I fixed a problem that I just solved while working on some coding project. My memory is very fresh and I can remember what it's like to have the problem, so I can describe it very clearly.

Sometimes I create less practical posts where I talk about things that relate to my experience as a developer, or common struggles, or tips for productivity, for example. Those are the posts that are normally appreciated the most by my readers.

Focus on being useful and solving problems

Your posts must solve a problem: each post on your blog must have a very specific goal.

This is key, and the post title must perfectly address the problem and solution.

When people search for how to solve that problem, you want your post to be in the top results.

And your content must be awesome.

Exactly what they are looking for.

Focus on creating the absolute best, most valuable content.

Write the blog post that would have helped past you

One of my favorite things is writing a blog post that contains the solution to a problem I just solved.

Everyone else solves a problem and moves on.

If you dedicate 10 minutes to document how you solved the problem you had, you are helping other people that might have this problem next week, or next year, or 10 years from now.

They will be thankful that you wrote something that helped them.

And perhaps you can even help yourself in the future.

Sometimes I google for a problem and I find my own post, written many months ago. I completely forgot that I wrote it.

What not to write about

One thing I recommend that you not write about is anything that doesn't help other people.

It's difficult to draw a line in the sand, but you should think about what you are writing.

Don't think of a blog like a diary. You can use it like a diary, posting your rants or opinions or what you ate for dinner.

But is it really helping or creating any value for other people?

I personally only try to write about things that I assume will help anyone. Even if a post helps just one person, then it's a good post for the blog.

Teach everything you know

I learned this mantra, or motto, from Nathan Barry. He's famous for his book Authority and for being the founder of ConvertKit, a great tool for bloggers that have the need to build a newsletter.

He has this notion that building an audience is the secret hack to creating a successful business, and I really believe that. And to build an audience, the best way is to share, in one way or another, everything you know.

He did that in the form of books, first with two books about design, as that was his specialty. Then he wrote everything he learned about selling those books in another book.

I make my living teaching everything I know, and since there's a finite amount of things I do know at any finite point in time, I had to transition to teaching everything I learn.

I found that many people like the way I talk about stuff, with a very simple approach, and this beginner-oriented point of view has been beneficial to me.

Your approach can be different, but the “teach everything you know” mantra is one that you need to seriously think about.

Practical content suggestions

After discussing why content matters, and why you should focus on creating great content, it's time to talk about some practical suggestions.

Content length, how much is enough?

It does not matter how long your articles are.

The Internet is full of marketing blogs that tell you the content must be 2000+ words long, 10000+ words long, and so on.

But it does not matter as long as your content solves a problem for a person.

I have posts that solve the problem in 50 words, and if this is the solution to someone's needs, that's great!

There is no need to dilute the content with useless words, and I'm sure you immediately notice when a blog post is trying to transform a 5-line answer into a 200-line one.

The same thing happens with videos, right? You are looking for something, but you need to watch 15 minutes of intro to get to the meat of the subject.

Do the opposite. Do what's great for your readers.

Plus, Google does not care.

Keep posts focused

When I say that Google does not care about content length, it's because I've observed this first-hand.

Some of my most visited blog posts are very short, yet they take a problem and they solve it, quickly.

And Google notices it. The key is solving a problem. Google notices that you are helping it help its users, and that's what happens when you keep your posts focused on a specific topic.

Some topics will perform better than others, some might be less popular, but as long as it's focused on a little problem and it solves it, it's great.

Don't try to appeal to everyone

You can't write great content for everyone. Pick your ideal person, or group of people, and write for them.

Pick your crowd.

Pick your tribe.

Ignore everything else.

Don't aim for perfection

Done is better than perfect.

This is my mantra. As long as what I do is technically correct and does not have errors, it's all fine.

You don't need to overthink it. Focus on being good enough. That's when the point of diminishing returns starts.

Most of the time, good enough is already better than 95% of what's out there.

Don't let chasing perfection limit your production volume.

It does not matter if someone already wrote about it

There are thousands of water brands. Thousands of brands of wine and beer. Thousands and thousands of hotels.

The more people write about a subject, the more interest there is around it, and the more people read about that subject.

If no one wrote about something, it might not mean you are a pioneer or “first", it might just mean no one cares about that topic.

You don't need to bring something new to the table

If you worry that you don't have a unique spin on something, or a revolutionary idea, you might be limiting yourself.

Often, a 1% or 5% improvement over something that's already out there is enough.

Google was not the first search engine. It just worked better.

Basecamp was not the first project management tool. It just worked better.

Focus on being better, not new.

You can blog about anything

I am a programmer and I blog about programming. If you’re a programmer too, you don’t just have to blog about programming.

There’s space for everything.

The topic does not matter, as long as you are passionate about it. There's no way you can force yourself to write about one subject for a long time without burning out.

Anywhere there’s a problem, you can bring solutions.

For me the niche was programming, for you it might be something else. Also, programming is even a bad niche as most developers consider even a little bit of marketing to be spam and mostly hate receiving emails (as they're using email every day and probably already receive a lot of it).

I think blogging, properly done, can be even more successful in less technical topics. It can work, as long as people search for those topics on the internet and have a place where you can find them like a big subreddit, a big Facebook group, or a popular online forum.

Create a system

I am an engineer and I believe in systems. Humans are weak. Systems are strong. Humans with a system are on a good track.

If only we could have a system for our blog, everything would be simpler.

Turns out that we can definitely have a system, and in this section, I'm going to explain the system I use.

It might not be the perfect system for you, and I won’t pretend it’s a system that works in 100% of the cases. But it's a starting point, and by tweaking it you can create your own perfect system.

A system makes you consistent.

Consistency is key

Why is consistency so important?

Because consistency is deeply entrenched in our lizard brains.

You are the one that makes one blog post every Tuesday. You're not the one that *tries* to write a blog post consistently each week. You're the one that just *does*.

It's not me, Flavio, saying so.

Let me share something from Robert Cialdini, author of the amazing book Influence:

Once we have made a choice [...] we will encounter personal and interpersonal pressures to behave consistently with that behavior.

Once you have a series of 5, 10, 20 weeks of posting, you automatically become the one that posts every week. Or twice a week, or whatever schedule you chose.

That's the key to the system: consistency.

Have you ever heard of Rand Fishkin's Whiteboard Friday? That was a great video series about SEO that came out every Friday. Do you know about FunFunFunction? MPJ releases one video every Monday. Every one of his fans knows and waits for his "good Monday morning" every week.

I’m sure you know YouTubers that post on a pre-determined day. Like Saturday or Tuesday.

Everyone can find the time to create a blog post every week. But not everyone is willing to put in the work to create something every week. Will you?

Schedule posts ahead of time

As we just discussed, the single best thing you can do with your blog is stay consistent.

But staying consistent is hard.

One of the easiest ways to become inconsistent is to miss a day because you were sick, or because you went to a party, or because you took a vacation.

When you miss a day, and you forgive yourself for this, you will miss other days.

That's what I would do. If I let one day slip by without a post, well… nothing bad happens and I have a track record of missing one post.

Before I realize it, I am sure I will miss other posts, too. Just because I was too lazy one day, I ruined the consistency of my blog and now it's impossible to get that perfect streak of posts back.

How do you prevent that? By scheduling posts ahead of time.

Before you start publishing your blog, before unveiling it to the world and announcing it everyone, write 3 posts as we discussed before, and start building up your queue.

Have a queue

When I first started my blog, I discovered the notion of creating a queue by accident.

I happened to work on another project of mine, one that didn't take off as I expected it to.

This project involved creating some long guides, about topics I cared about.

So when I decided to shut down the project, I thought that it was a shame to abandon those long guides to their unknown fate.

So I cut each chapter into several blog posts, and I got about 15-20 of them.

I could have published them all on that day, but I randomly decided to queue them up. One today, one tomorrow, and so on.

A couple of days after that, I had an idea for a new post. I was a blogger now, right? And I queued it after all those posts.

The queue has never dried up since then, over 700 days ago. Some days I reached the end of the queue and I had to fill it up again from zero, but I never missed a day.

I just attribute this result to the system – the queue I've built up, and the shame that would result from having written all those posts in the past and then stopping.

I could not stop.

Pick a schedule frequency you can sustain over the long run

One key part of this scheduling and queuing system is frequency.

How frequently should you post?

My recommendation is to post with a frequency you can maintain over time, consistently.

Start with one day per week. Create a queue, as I suggested, and see if you can maintain this frequency over 2-3 months. Once you start having a queue that's too long, say a blog post you write today will be published 3 months from now, then you can start increasing the frequency.

It's always best to scale up the frequency than to post less frequently because you can't sustain the frequency you initially set.

The reason I focus a lot on consistency and frequency is that people get used to it and they learn to expect a post from you, and they look for it.

If you start missing posts and not sharing information as frequently, then people don't know when to expect a new post from you, and they feel lost and disconnected.

This happens with everything. I notice it with videos.

If you watch YouTube videos frequently, what do you think when a YouTuber that posts every day, and you watch every day, suddenly stops posting for a week?

I subscribe to a YouTuber that posts every Saturday, and every Saturday, unless I am out doing something, I'm there, at noon, watching his video.

Ignore quantity

If you know beforehand that you have 3 hours a week to dedicate to blogging, don't force yourself to create too many posts.

Do one post a week, but do it well. Don't create many posts that are irrelevant or low quality, create one that you can be proud of.

Quality is perceived, and people will associate your worth with the quality of your work.

Be known for creating high quality and helpful content.

Focus on the process, not the outcome

One recommendation I have to be productive is to focus on the process.

I am focused on creating the blog post.

I am focused on creating ebooks.

I am not focused on how many people will read the blog post, or if they will like it.

That's not something I have control over. The best thing I can do is focus on my work and make sure it is the best work I can perform today.

Keep the process lean

When thinking about my process, I like to simplify it.

I want to remove all the friction I can remove.

It all needs to be simple, fast, streamlined.

I don't want roadblocks.

I try my best to remove all the resistance and all that powers resistance.

There should be nothing between me and writing a great blog post.

Keep a list of topics

I don't always have the time to write about something.

Sometimes I have an idea for a topic, and I write down the title of the article in my favorite writing application.

When it's time to write a new blog post, and I don't have an idea ready, I go through the list of titles and find one that is appealing to me in that specific moment.

Capitalize high energy days

Some days I have really high energy for writing blog posts. Some days I have very little, if any, energy.

On those days when I have the fire, I can write a few blog posts in a row and code the rest of the day (as that's my job). I have fuel for everything.

I capitalize on those days. I sit there and I might write 5 posts, and put them in the queue.

The days I have low energy I am thankful for those high energy days and I am thankful that I did everything I could to get the most out of them.

How to get people to your blog

Having a blog is great and all, but having a blog that people actually read is deeply satisfying.

There’s a problem though: how do you get people to read your blog?

How Blog Traffic Works

In today's world, if you are not producing valuable and consistent content, you are invisible. There are just too many things pushed at us every day.

I dedicate from 30 minutes to 1 hour every day to the Internet. That means Social Media, mostly Twitter, RSS and content aggregators.

I always see the same people. Those people that are highly successful keep pushing out great content.

It might be an inspiring tweet, a great blog post that's shared a lot, or something that's just worth reading.

Unless you perform at the same level, you are not appearing in my feed because I only give it limited time. And I assume the vast majority of people do the same. People don't just spend the whole day on social media waiting for you.

Share your work where the people are

Sharing your content is a great motivator especially when your blog is young and you don't have an audience yet (more on this later).

In this situation, you can't rely on organic traffic. To avoid losing motivation, it's key to get your first views by sharing your content.

You can do 2 things: share it with your own audience on social media, if you have an audience already, or use sites that provide an audience and try your luck.

Those sites include Reddit, Hacker News, Medium, and forums that specialize in the topic you are talking about. Word of caution: you might have your feelings hurt in some of those venues, so just be prepared for criticism.

Organic growth is the only reliable solution for long term traffic

You might have the proverbial lucky day, and your blog post goes viral in places like Reddit, Hacker News, or on Social Media.

But the key factor for your blog is organic traffic.

Organic traffic means Google will receive a search from a user and will decide that it should show them your blog post.

Organic traffic is a key factor to every website. Social media traffic is generally low quality, hard to get, and hard to maintain over time.

This is a long process. Google needs to trust you, and it can take some time.

My best suggestion to give Google a reason to show your blog posts is to consistently solve people’s problems.

Solve people’s problems

How do you get Google (and other search engines) to send loads of traffic to your website?

What matters to Google is that it satisfies its own users.

And those are people searching.

People search in order to solve their own problems.

I see SEO people who suggest that you write 3000+ posts to rank on Google.

That’s a great tip if their goal is to discourage you from writing more. They call it long-form content.

Now, as a non-SEO person, but as a person that does things and observes what works and what doesn’t, I can say that if you solve a problem for a person with a 4-line blog post, Google will thank you by sending you more people who have that problem.

They know using their algorithms when a person found the answer they needed. This is Google’s job. Their job is to solve people’s problems by providing the perfect content they are looking for.

If you can provide that, Google will help you.

Not every post on your blog can solve a problem, of course. But if you have posts that solve problems, you’ll start to notice, as those are the posts that will get the most visitors.

Not every post must be small of course, and if long-form content is best for you, do that.

When we were talking before about choosing a good domain name, I mentioned domain authority. I said that an old domain name will likely have more domain authority.

What is domain authority?

Domain authority is a sort of score that search engines use to set the importance of a website, and it's determined by many different factors. The specific algorithms and metrics used are not publicly available, but there's one thing which is key to domain authority: links.

The more links to it that a website has, the more authority it has. But it's not that simple. The more authority the domain has that the link comes from, the more important the link is.

Links have very different weights. A link coming from Wikipedia has more power than a link from a random tweet. And search engines do take social metrics into consideration, too. We can't know for sure, but a link in a tweet from an influencer in your field has more weight than a tweet from a Twitter bot account.

Google (I say Google because it's the most important search engine, but others might do a similar thing) is also careful about the topic. If I link to a kitchen recipe site from my computer programming blog, that link is not going to have much value.

If a famous kitchen recipe blog links to a smaller kitchen recipe blog, then that's more relevant for Google, and it will give that link more meaning.

When it comes to links, it's important to get links from relevant and on-topic websites.

This is only something you can get by providing great and useful content.

Expand your reach with an email list

Let’s discuss how to augment the experience you create for your blog visitors by using an email list.

What is an email list?

Blogs are closely linked to newsletters and email lists. The two often go hand in hand.

A newsletter is the most effective way you can get in touch with your blog readers over time.

If you are not already familiar with the email list concept, you may be wondering whether in the era of Facebook, Instagram, Snapchat, and Twitter if you still need to use an old-style system like email.

In fact, email is a fundamental tool for any online business. Blogs are no exception.

Sending emails to a list of customers is not a system by which people commonly spam, as you might be thinking.

Especially if you're a developer, you need to realize that email is useful, you are not evil for sending emails, and that people want to hear from you.

Email is a cool system where people interested in your content or products can have more information about them, or about new products that you could provide in the future.

Email marketing is one of the most effective systems with which people are converted over time from visitors to customers: people in your list have explicitly asked to receive more information from you in the future.

This does not mean sending an email after 8 months asking them to buy your new product. Instead, the right way to approach this is to ask yourself how you can help your customers, in a consistent way.

Through the list, over time you can build customer loyalty, you create a relationship, and you keep in touch.

Your task with the list is to train people on the subject you are talking about, and to foster anticipation about upcoming news. But try to keep the focus on the customer rather than on you. Remember that a person will not be on your list forever – just as long as you can keep interest high.

So how do you get a person to join your email list in the first place?

With a small gift, called the lead magnet, which can be for example a report, a free ebook, exclusive access to premium content, an email course, or really any gift you can make.

The concept is simple, but it is crucial that the gears that make up this mechanism are calibrated to perfection and oiled regularly. Don't leave anything to chance if you do not want to be amateurish in the eyes of your customers.

It’s fundamental that you offer people what they want. The email list is considered by most online business owners as the most important asset of a business, and the only one that really is 100% yours.

A typical use of an email list

Let's look at an example. This is the system that most successful blogs use:

a person reaches your site coming from search engines or Facebook. Then a popup appears (more or less invasive) with the request that they enter their email to get a small gift. Then you’ll send them the gift via email, and the person enters this cycle where they will be offered a variety of products over time.

Usually, when a person gets on your list, they enter a phase called the funnel. The funnel is an automated process of warming, that is, the person get "heated" and is brought from being a random visitor to becoming a possible customer via a series of emails.

As soon as the person signs up, they will receive an email. The next day they will receive another, after 3 days another one, all according to predetermined logic.

Typically, these e-mail series terminate after 7-8 mails where a story is told and in the end, they will be offered a product to purchase. If the person doesn't buy right away, emails will continue to flow, and so on until the automated sequence ends.

There are many kinds of different sequence types and usually people do not invent anything new. Instead they use well-tested systems (which you can easily recognize once you are trained).

Once this sequence is over, the person's email is placed in another sequence, or in the general list, which is no longer automated. Then, the person managing the list (you, for example), will send an update email from time to time, say once a month, to make sure the person don’t forget about them.

In short, the author of the list tries to sell a product but if the recipient does not buy it, they will still remain in the list until they cancel the subscription. Because you never know – in the future they could decide to buy and become a customer.

How to use an email list

Of course, there are several approaches to the list. Let's see some situations that you could apply in your case.

If you sell an ebook: your users are therefore your readers. You could add a link to your site, and use as a lead magnet a free ebook on a topic that you know the user is interested in.

On the list, you could initially present an upsell of other ebooks you've already written. Then you could insert the person into your monthly email, where you'll publish interesting links to the topic, and from time to time promote your new ebooks.

If you sell a product: for an info-product, it's the same process as a typical example used on blogs. Maybe as a lead magnet you use one or more chapters, or you have a video or something else related to the subject.

If you have a software product: the list could be made up of all the people who bought your software if you sell to them directly, which gets you their emails. Or you may want them to sign up for your application.

You could use the list to share updates, inform about the latest releases, cross-promote with other developers, and raise awareness on new products you’ll build over time.

Where to host your email list

To manage an email list you need a specialized software.

There are many different kinds of email newsletter management tools.

Some are simple. Some are way too complex for your needs. You just need to find the perfect one for you.

The first separation I want to make is between self-hosted software and SAAS. Sendy (https://sendy.co) is an example of a self-hosted software. You don't pay a monthly fee to use it, but you have to manage your own server, and you use a service, typically AWS, to actually send the emails.

ConvertKit is an example of a tool that is SAAS based. You pay them a monthly fee, and they take care of everything.

That tool, in particular, is targeted at bloggers, and it's really well made. I have used it for almost 2 years, and it's really great.

I have recently moved to Sendy, self-hosting my newsletter, because at some point the price, for me, was not sustainable.

To start with, I would definitely recommend ConvertKit. You don't need to overthink spending $29 or $49 a month if that's valuable to you.

But my list became big enough and I was not comfortable spending a lot of money on my email list hosting software.

And it's a business tool: I know several top-performing bloggers with great audiences that use it for lists in the hundreds of thousands, and I'm sure that the ROI (Return on Investment) is well worth not having to manage your own server.

Especially if you are new to managing servers.

ConvertKit is not the only service, of course. There's Mailchimp, Drip, and others.

Some tools let you start free. I think of TinyLetter (https://tinyletter.com/). That's what I started with, in the beginning, until I reached a few hundred subscribers. Then I moved to a tool called ButtonDown and I went from there.

Keep it alive

As with blog posts frequency and consistency, the best advice I can give about mailing lists is to keep them consistent.

Do you write every 2 weeks? Fine. Keep doing it.

Do you write every month? Fine. Keep doing it.

The exact frequency is really personal. Some people write a new email for every post they make on their blog.

Some people email once a month with the list of posts. If you write once a month, however, people might forget who you are. This happened to me: I might subscribe to a newsletter and forget about it if you don't email me quite frequently.

Since I write one post per day, I found my sweet spot at one email every week, on Tuesday, and I always respect this frequency.

People know that Tuesday is "email from me" day.

The lead magnet

We discussed how having a newsletter is essential. It's also essential to have people signed up for it.

How can you have people decide to give a thing so precious as their email address to you?

The best way I know is to give them something in return. Don't expect people to sign up without a clear gain for them

You need to give an incentive to people to sign up for your newsletter.

This is the lead magnet that we discussed briefly earlier.

It can be a 1-page PDF cheat sheet. A report. A short mini-course of 10 videos. An email-based course.

The sky is the limit when it comes to what the lead magnet should be.

And there is no reason you should only have one lead magnet. You can have multiple.

In the ideal case, every blog post should have a specific lead magnet, but this is of course not always possible. I tend to create a lead magnet for each category of posts I'm writing.

How I discovered lead magnets

At the beginning of my blogging adventure (a little more than 2 years ago), my blog had zero traffic and Google ignored me.

I shared my posts on Reddit, and some people came and saw the site. I shared my posts on Twitter, where I had like 500 followers, many of them probably bots or inactive followers that I had collected in the 10 years I had been on Twitter.

If I had 10 or 15 visits a day, that was a good day.

After a while, I decided to create a newsletter, with a simple promise: every 2 weeks I'd send you links to all the posts I published. Like everyone does. That was good to get an email subscriber every other day, but that was it.

After some months, traffic grew a little and I was getting 4-5 subscribers every day. This was better.

Then I realized that people will not subscribe to a newsletter if they don't gain an advantage from that. This is a key point. I rarely subscribe to a newsletter just to “stay in touch”. Sometimes I do, and when this happens to you, that’s a quality email subscriber. Someone that really wants to hear from you.

But to get to this level requires people to have received a lot of value from you already, in one way or another. Maybe they already subscribe to your YouTube videos or your podcast. It’s hard for a complete stranger to subscribe.

So I changed my strategy from asking to "Join my newsletter" to offering people something of value. This lets the conversation begin with me offering a valuable asset.

In my case, the valuable asset, in the beginning, was a little PDF with a collection of the best blog posts I had written on a subject, nicely organized as an ebook.

Most people coming to my blog didn’t read more than one page, so I thought that creating a nice little ebook was a good way to show them what I had to offer. This increased signups a lot.

Ups and downs

Having a blog is not all fun and games. There are many things that might give you a hard time on your journey.

Realizing this is a first step in the right direction.

Writer's block

Writer's block is a thing. I have no general advice on this, and whole books were written on the subject so there's a lot of better advice out there than what I could come up with.

My solution when it comes to not knowing what to write about is to pick a subject I want to learn, and start learning it in public. Right as I write this, I am learning a completely new thing (Arduino and electronics sensors) while re-discovering the old electronics topics I studied back in school.

I am shooting videos while I learn this thing, and writing blog posts on the topics that are better suited for blog posts (no, I'm not limiting myself to blogging, I also like doing videos).

If a topic is boring to me, I just don't write about it because if I'm bored writing, I will write a boring article. So I try to write about things I'm interested in and excited about.

Imposter syndrome

Every person, sooner or later, is going to suffer from this thing which we label imposter syndrome. You might have this feeling now, but you don’t know that it has a name attached.

Let me describe some situations where you might find imposter syndrome in the wild.

You are a developer, have no Computer Science degree, and you feel people that have the CS degree know a lot more than you, and you should get one too in order to be called a developer.

You work on a project and you call it a little side project, not a real project, because – you know – it’s just a simple app.

You constantly belittle yourself, and have low confidence in your abilities.

You think other developers know a lot more than you do.

You think someday someone will find out that you are not worth your job position, as you can’t solve the coding interview quiz #423 from a random book.

You think you don’t belong to the coder’s club.

In the case of blogging, you’d like to start blogging but you fear other’s opinions and even think that you can’t add anything new to the table, so you don’t even start.

What's the solution to this problem?

I don't know if it applies to you, but when I start to feel this way, I try to put myself in the learner's shoes. I am not teaching. I am learning in public. Most of the time.

If this is not enough, realize how far you have come from where you started. Look back. There was a day when you could not even figure out how to start the computer. What code even was. You didn’t know you could actually create programs and make the computer do what you want.

Look at you now. You are the best version of yourself and yet you can be perfectly sure that tomorrow you’ll be an even better version. You are improving. Just like your blog posts.

Working in public

Working in public can be nerve-wracking. Well, it is for me. You don't really know who is watching your work, and what they really think of it.

You're one step away from an intolerant expert judging your work as not relevant.

And maybe the creator of a library is looking at your tutorial on it, thinking you didn't get it right.

But looking at the opposite side of the spectrum, by learning in public you are forced to grow.

Step up the game.

You need to put a lot of effort to make your work great in the eyes of a lot of people.


It's easy to feel overwhelmed by all the things you are doing. Thinking about new content, writing the actual content, writing guest posts, trying to promote the content as much as you can – but without being spammy, and replying to comments and feedback.

This is not unique to blogging, of course. I have seen this even more in the YouTube space. There, it's even worse to me. You are putting your face and voice in front of a lot of people, instead of just your words and pictures like in a blog post.

My best advice to avoid burnout is to choose a minimalistic approach and to pick a topic that deeply interests you.

If you write about things you are passionate about, you will never have a shortage of things to write about. Your list will be 3 miles long.

Choosing a minimalistic approach means that you have to cut down anything that's not essential. I do not have comments on my blog. I need to care less about what people think, which has the drawback of creating less community, but also has the positive of causing me less stress.

Also, I do not generally promote the content I write on social media or other outlets, except if it is a special article that I really want to be seen, and I do not usually write guest posts on other blogs.

Such activities can be limited once the blog is up and running and you get a fair share of visits every day. So with the increase of views and stress given by many people looking at your work every day, you get the benefit of focus.

Lower your expectations

If you keep your expectations low, you will never be deluded. Don't expect your blog to be an overnight success. It will not happen. Just like it does not happen with a YouTube channel or a podcast. It's hard. Except for some lucky ones, maybe.

This is why blogging about things you are passionate about is beneficial. If you write about things you always wanted to write about, and will even write if no one is reading, then you are on the right track.

Then if success will ever come to you, you'll be more than ready for it.

Trolls and negative feedback

The Internet can be a wild place, and I am sure I don't have to explain this to you. When people write comments online, they can be mean. Sometimes. Most of the time they are not.

I do not have comments on my blog directly, but I do receive feedback via email and on Twitter. And on YouTube videos.

And the rare day I get one blog post featured on Reddit or Hacker News, two sites relevant for my content, I get very stressed about looking at comments.

It must be me, and most of the times comments are wildly positive, which is great. But I heard somewhere that our brain is much more receptive to negative feedback, and I can certainly confirm that I remember bad feedback more than positive feedback. It can take 10 positive comments to make up for a single negative one.

I might be over-sensitive but removing comments altogether from my blog removed the handbrake. I do not have to worry if some content does not resonate with people.

I wrote it, it's like that, I did my best to make sure it's "correct" to my best judgment, and I am off to the next one.

Your mileage might vary.

Ignore vanity metrics

I have the incredible experience of having enough visitors to be surprised every day of the number of people visiting the blog.

I open Google Analytics at a random point in time during the day and I see the number of people. Then I get back to whatever I was doing. It's kind of addictive, but also useless.

Does that affect my day? No.

Does that change what I'm going to do next? No.

Same for email subscribers. Does it really matter how many people are on the list? No.

What matters the most is that people resonate with your ideas and learn from your work.

Even if it is just a handful of people.

The rest is useless.

Blogging is lonely

Blogging is lonely, in the same way that writing a book is lonely. Also working in your secret laboratory is lonely. Being a YouTuber is lonely. Being a remote freelancer is lonely.

There's not much of a solution for this.

Other than accept it, and realize that some people might be more happy to be lonely. I am definitely an introvert and I thrive in a lonely environment, spending days in the silence.

That's probably why I like blogging.

It takes time

Let's say it out loud: it's going to take a lot of time. There is no way that your blog will be an overnight success. It will take many months and possibly years before you will see a rising tide of visitors to your blog. Maybe. If you did it alright.

This is a harsh truth, but it's one I think is necessary because I don't want you to believe that success is easy to achieve, and I want to set the right expectations. Time, persistence, showing up every day. This is what it takes, for any kind of success in any kind of activity.

It's a long game, but one that will eventually give you a lot of satisfaction.

Making money with a blog

A blog can be a great launch point for various projects that can make you money.

There’s absolutely no need for your blog to make money if you don’t want it to. But it’s good to know what your options are. In this last chapter, I’m going to explain at a high level the main options for “monetizing” a blog.

Get more clients for your business

The first and easiest way, I'd say, is to offer your services.

This especially works with non-location specific services. For example, if you are a plumber it might be harder. Not impossible, especially in large cities, but other channels could work better.

But if your business or activity is not linked to a specific location, a blog can be a great promotion for your business.

You can write articles that position you as an expert in the field you work in, and people will get in touch using the tools you give them: email, chat, or whatever you want.

I’ve seen this applied countless times, and it can lead to big opportunities in consulting. I have also experimented this first-hand when I started my career.

Advertising, affiliates, and sponsors

When your blog starts to gain a consistent number of visitors, that’s when it can make you some money in what’s usually called “passive income”.

There are 3 ways, mostly: advertising, affiliates, and sponsors. This is the difference: advertising is banner or text ads that appear on your page. You typically add a code to the site and then forget about it.

There is a broker, like Google Ads or Mediavine or BuySellAds that will take care of everything for you. They'll find companies that want to show their ads, and their ads will be displayed on your blog. You get paid by ad views and/or ad clicks. It’s the simplest method you can find, although it usually requires a high number of page views to work.

Affiliates work in a different way: you get paid when people purchase a product coming from a link put on your website.

A common affiliate system is Amazon affiliate links. I’m sure you’ve seen them everywhere, under YouTube videos, under Instagram posts, and so on.

When Amazon makes a sale, you get a percentage of that. Same works for other smaller affiliate programs.

For affiliate links, you need to generate a specific link and depending on the frequency you have to do that, and the number of products or programs you promote, it will require more work on your part.

Sponsors work in a different way, and you typically need to get in touch with companies via email or phone. They will usually pay a flat fee for a month (or more) of sponsoring. You typically need to put a banner on the site or talk about their products in your posts.

Selling your own products

The system I like the most is using the blog to promote your own products.

It’s similar to promoting your services, but with products, it requires less work on your part and it can scale very easily.

Sure, you need a product beforehand. And you need a product that you know will be relevant and useful to people who read your posts.

But once you have it, you can promote it to your readers, without paying for ads, and without having to run an affiliate program yourself. Then, all your work – your blog and your products – are all aligned in the same direction: making useful things for the people you want to interact with.

Final words

I hope this book was useful to you, and I really hope it might be the inspiration you need to create your own blog.

Download a PDF and ePub version of the How to Start a Blog book here.