Passive Income With a Programming Blog – A Comprehensive Guide



Welcome to a guide and sharing on how to make a passive income with a programming blog. Some of you code ninjas out there are probably still slogging with your full-time job, getting frustrated, and not earning a lot of money. I was also in the same situation until I decided enough is enough.

I have the technical skills, knowledge, experience, and developed multi-million dollar web applications. What is stopping me from creating a system that will make money by itself passively? As things turn out, blogging and the Internet became the answer. But no, I am not going to be a crooked marketer here and sell a “very easy $2000 sure win blogging course” – Get rich quick does not exist.

Even as a senior web developer, it took me years to figure things out. If you are interested to start a blog and succeed, here is sort of a compressed version of what I did. Be warned, it is going to be a long post. Contrary to what marketers say – Blogging is not for everyone, and there is a learning curve. You decide for yourself if it is worth the effort. Read on to find out!






Creating a blog is as easy as signing up for a free blog website and start writing some random stuff. But that does not work for professional blogging, we are going to need a plan before we start.



Even though it sounds scary, the plan is nothing much… Just knowing what needs to be done. This is nothing more than a simplified point form of all the steps below if you decide to not read everything:

  1. Blog Setup – Choose a good domain name and hosting service.
  2. Keyword Research – We don’t write random stuff, research on the good topics first.
  3. Content Generation – Actual writing of blog posts. Not randomly again, but writing with ninja skills.
  4. Content Promotion – Present your content to the world.
  5. Monetization – When the blog has matured enough, time to make some money off it.
  6. Expansion – Grow the blog above and beyond.




The first step of the blogging journey is to set up the blog itself. Of course, code ninjas should be able to do it without any sweat. Just some technical stuff that we eat for breakfast. Pfft.



There are 2 parts to a website.

  • Domain Name – Or in the common terms “website address”.
  • Server – Code ninjas should know what this is.

Now, some hosting companies will “make it convenient” and offer to give you a “free domain name” when you sign up. Don’t fall for this trap. They will use the domain name as a hostage to bind you to their hosting services.

That is when you decide to switch to another hosting company, they will slap a support fee, transfer fee, admin fee, cancellation fee, and whatever else to stop you from switching. But if you manage the domain name by yourself – You will have to freedom to switch whenever you like, to whoever you like.




First thing, find and register a domain name. There are quite a lot of registrars out there, but one that I stick with is Namecheap – They seem to offer a slightly better registration rate than the rest. A couple of tips for choosing a good domain name:

  • Try to include words that are relevant to programming (good to have, not a must). E.g. Programming, code, coding, app, hack, script.
  • Restrict to 2-3 words. E.g.,,
  • The key being, have an easy to remember URL.
  • Websites that are not .com will also rank in search engines just fine – .ninja, .blog, .site, etc…
  • Some domain names sound cool (like or, but that is going to cost a bomb to register.

The rest of the registration process is very straightforward, just enter the domain that you want into the search box, and follow the instructions from there.



Now that you have a domain name, the next step is to get a server. You can technically lease a line from the ISP and set your own server at home… But we are not going to go hardcore here. Just sign up for a simple shared hosting package and pay a few bucks every month. Bluehost is one that I have stuck with for years, and they offer a very friendly price for beginners:

Kind of honest note – They will only give a better rate when you sign up for 2-3 years at once. No worries if you want to upgrade a few years down the road, just contact the support. They will take whatever remaining balance you have, and you just have to top up.



With that, we have both the domain name and server. All that’s left is to point the domain name to the IP address of the server. But nope, I shall recommend one more layer of security – Cloudflare. If you have not heard of them, they basically help to cache some of your images, offer a free firewall, and other services. There are paid tiers in Cloudflare but starting with a free account is good enough.



Sign in to your Cloudflare account > Add your website > DNS > Scroll down and take note of your Cloudflare nameservers.

Back in Namecheap > Your Account > Dashboard > YOUR-WEBSITE.COM > Manage.

Scroll down to the “nameservers” section > Change to “Custom DNS” > Copy-paste the Cloudflare nameservers here. Switching the nameservers will take a while, up to 24 hours at times. So just wait for the transfer to complete. Once complete, you should be able to manage the DNS entries in Cloudflare.

The final step is simple, point the DNS in Cloudflare to Bluehost. Log into Bluehost > Advanced > Take note of the shared IP address.

Back in Cloudflare > DNS > Add or edit 2 entries:

  • A – Point it to the IP address of Bluehost.
  • CNAME – Point it to @. Meaning, is the same as




Congratulations, you now have a blog online. But here is a recommendation, and that is to turn on SSL (use HTTPS by default).

Cloudflare > SSL/TLS > Full. Bluehost should automatically generate a free SSL cert for your blog.

Under the same SSL/TLS section > Go to the “Edge Certificates” tab > Always Use HTTPS > On.

A small warning – WordPress is already installed on Bluehost by default. But it has a tendency to throw some quirky problems when SSL is switched on for the first time. Contact Bluehost support if you are facing WordPress SSL hissy fits.



If you are still confused as to who does what, here is a summary:

  • Namecheap is the domain registrar – You register the website address with them.
  • Bluehost is the hosting company – They provide you with a server.
  • Cloudflare is the middle man – They sit in-between the registrar and host, provide some extra caching plus security.



Nope, we are not done yet. There is still plenty of stuff to do in WordPress itself. Here are the themes and plugins that I will recommend:

  • Theme – Astra or GeneratePress. (Fast lightweight themes)
  • Plugins – Antispam Bee, Classic Editor, Google Analytics, Ninja Forms, Revision Control, UpdraftPlus, W3TotalCache, Wordfence, WP Extra File Types, WPS Hide Login, Yoast SEO.

Don’t have to follow along, just a recommendation. But please do create the following “boring pages”:

  • About
  • Contact
  • Terms of Use
  • Privacy Policy

These may seem to be “useless” at first, but search engines do give brownie points if you have them.



Nope, we are not done again. Just one last small step – Register your blog with the search engines. If not, it will take them ages to find your website.





The first stumbling block for every beginner blogger. What should I write about? Why is there nobody reading my blog posts? Is it not interesting? Are you not entertained!? Introducing – Keyword research to solve the woes.



Keyword research is a core SEO task that involves identifying popular words and phrases people enter into search engines.


Yep, keyword research sounds like some kind of very difficult mythical process at first. To make things worse, there are a ton of different methods if you search for “keyword research” online. Every “SEO guru” says a different thing, who is correct here?

So over years of struggling and trying out a load of different things, I finally figured to dumb things down. Keyword research is actually nothing more than looking for interesting topics to write about – Easy topics that you can rank in the search engines.




A free and most “beginner-friendly” keyword research method that I found is the “Alphabet Soup” method. Ever notice that search engines will try to predict and auto-complete your search query? For example, if you type “how to python”, the suggestions will probably be “how to install python” and “how to script in python”.

In the Alphabet Soup method, we “abuse” the auto-complete to find topics and keywords to write about. Very easy to do:

  • Go to Google, Bing, Yahoo, YouTube, or even Yandex.
  • Start with a base keyword. As with the above example, “How to Python”.
  • Then just append alphabets behind – “How to Python a”, “How to Python b”, all the way to “How to Python z”.
  • Just doing that will give you a ton of keyword and topic ideas to write about. The best part – These are actual terms that people search for, and why search engines auto-suggest them.
  • If you want to dig deeper, append/prepend “who, where, why, when, which, with, without, how, do, can, tips, hacks, lists, basic, advanced” to your chosen search topic.



The whole idea of keyword research is not only to look for topics to write about, but also to harvest the low hanging fruits. That is, if you find a topic that is not answered correctly, or not a lot of people have answered – Then go for it. You will probably end up on the first page of the search results and get free visitors from search engines.

Problem is, it is often difficult to tell if a keyword is easy or difficult to rank. One of the ways I do is to search for the topic itself and guesstimate the difficulty:

  • If there are a lot of paid results (ads) – It is probably a very valuable keyword and virtually impossible to score for newbies.
  • Same – If there are recommended products, people are probably looking to buy products instead. It could be hard to score.
  • If the top 5 results are all on-point and from reputable websites, forget it. Not until your blog is also famous enough.
  • If there are Youtube videos – Not so bad, but be prepared that you might get less.
  • The best ones to win – Topics that have top results from Yahoo Answers, Quora, Reddit, and random forums. Not accurately addressed as well.



A lot of the “SEO gurus” out there will recommend using various SEO keyword research tools. But I will go the other way – I don’t recommend beginners to use these paid tools.

  • As a beginner, you need practice. Practice how to find topics, how to find easy keywords to win.
  • Tools are not 100% accurate. Their search volume and difficulty rating is based on calculations that a programmer put in, based on data that might be outdated.
  • Not a single keyword research tool can guarantee a 100% success rate. They are good to have, but they don’t give you more if you don’t see the big picture.

The baseline, keyword research tools do help to save some time, but you need to have a basic idea of how to fish first.





With the keywords and topics on hand, the next step is to write the blog posts itself. But there is more than meets the eye – Here are a couple of ninja things to do, to make the blog post interesting for both human readers and search engines.



  • Try to keep the post title under 60 characters. Anything longer than that will likely be truncated on the search results.
  • Of course, include your chosen keyword in the title.
  • Adopt the leftward rule, try to keep the keyword to the left of the title as much as possible. For example, 6 Coding Hacks for Code Ninjas instead of 6 Super Duper Smart Ninja Coding Hacks.
  • Keep it simple and concise. If it is a post about coding hacks, “6 Super Duper Smart Ninja Coding Hacks” is not going to be a good title – People cannot understand the contents in one glance.



  • The key to winning readers and search engines – Good, solid, and helpful content. For example, by the end of this guide, you should have a good idea of how to create a blog and run it.
  • Aim for at least 1000 words, include a lot of relevant information that will help your readers.
  • If you end up with a short 800 words, then leave it. Don’t “pad” the contents by writing more confusing and useless stuff.



  • Properly structure your post – Main headers, sub-headers, points within.
  • Declutter long posts. Break long sentences into a few paragraphs instead.
  • Use lists and tables to summarize.
  • It’s not the Stone Age anymore. Include images and videos.



  • Some people may think – If I link to other blogs and websites, I will lose readers.
  • Contrary to that, don’t be afraid to link to useful pages and resources.
  • The more relevant and useful links you provide, the better it scores.




Once you have published a piece of content, the next sensible thing will be to promote it and drive some readers…



Yep, some of you guys may have heard, or will eventually hear – Backlinks from other websites will help your blog posts to rank better, help your blog to grow. So some poor sods took that too literally and went about a rampage of spamming:

  • Buying backlinks from Fiverr.
  • Buying PBN backlinks.
  • Hiring “off-page SEO experts”.
  • Guest posting.
  • Spamming forums.
  • Spamming comment forms.

Please don’t. That is not the way, and a perfectly good blog will get hit with penalties instead.



Let me release the cat from the bag. Here’s my super-duper top secret – I don’t deliberately build any backlinks at all. No cheap Fiverr links, no PBN, no guest posting, no spamming, nothing. The only thing I did for Code Boxx is to create genuinely useful cheat sheets and infographics, share them on Pinterest.

That’s all you need. Share your stuff on all kinds of social media, see which one is the most effective. Over many months, Code Boxx actually gained quite a lot backlinks naturally and passively. That is what most search engines like to see and reward the most.

If you are not convinced – My advice is, think. If you spend 10 days every month just to do all these spamming, why not spend 10 days to create more good content? In a year, you would have created a lot of good articles that rank well on search engines naturally. This works way better than just random spamming.





When is a good time to monetize your blog? How to monetize the blog? I would say the earliest opportunity is when you have 20-30 solid articles, plus a trickle of organic traffic.



There are a lot of monetization options for blogs and websites… Let me just name a few of the common ones here:

  • Ads – This is one of the easiest, and there are quite a few programs out there. Google Adsense is one of the most popular options out there, but please take note that they are pretty strict with their requirements these days.
  • Affiliate Offers – Simply put, promote someone else’s products, make a commission off the sales. There are a lot and some of the popular ones are – eBay Partner NetworkAmazon Associates, ShareASale has plenty of good reputable companies, CJ affiliate as well.
  • Sell Merch – Dropshipping (deep topic, do a search for this if you are interested).
  • Sell Digital Products – Create your own eBooks, training videos – Try Udemy.



Before you jump into monetization, here is Captain Obvious to the rescue – Nobody likes and trusts an unknown shady newbie, but everybody loves the famous popular guy. Monetizing a brand new blog can be very difficult, as many companies will rather work with the established ones.

So instead of thinking about monetization, concentrate on becoming that “popular guy” first… Or at least get to the level of “I think I have heard of this guy”. Write your articles, promote your blog. I would say, have a bare minimum of 3,000 page views a month (100 a day) first before even trying to monetize.




Blogs can only go so far. It will be great to have a successful blog, but we have to evolve with the times, go beyond just blogging after the first stage.



So… after about a year or 2 of blogging and writing hundreds of blog posts, what’s next? Probably write another few hundreds of blog posts… But with today’s technologies, things have changed a lot with the Internet.

Blogs are only the first step. Sure thing, an established blog can easily make thousands, but nobody can stay that way forever. Just like any good business, the sensible thing for mature blogs to do is to branch out – To do podcasts, YouTube videos, memberships, and all kinds of funky stuff.




That’s all for this guide, and here is a small section on some extras and links that may be useful to you.



Personally, the fastest that I started a blog from scratch to the first dollar off the Internet – 6 months. Yep, you “make money online gurus” can laugh and say “making money since day one”. But here is how a technical guy did in a realistic timeframe.



It depends. Really.

  • Some people can run a blog shop from the start, did their marketing right, and easily hit tens of thousands a month.
  • A few others struggle in a “dead niche” that is really difficult to monetize.
  • A rather mature “boring” programming blog will probably make a few hundred to thousand dollars a month.
  • Above all, I have not seen a blog that does not make money when done right.



Well, technically yes. Sign up with Blogger – Run by Google. They seem to be the only one that is rather open with monetization options and has Adsense “built-in”. All the other free blog services will probably freeze your account once you start making money off it.






As you can see, making money online with a blog is really not that rosy picture as some crooked marketers paint. It is pretty much just like a mini publishing business. You have to think of good topics consistently, write well, know your audience, promote your own business, work with partners, and so much more.

The starting phase is a steep learning curve, and this is where many fail. But once you have conquered it – Things get easier. You can pretty much leave the blog be, and it will still be making passive income. To me, that is worth all the time and effort.

Thank you for reading, and we have come to the end of this guide. I hope that it has helped you to better understand, and if you want to share anything with this guide, please feel free to comment below. Good luck and happy blogging!

Leave a Comment

Your email address will not be published. Required fields are marked *