Guillermo de la Puente

Writing a development blog: how I did it and what I learned

Communication, Development

Published on

RSS Feed RSS Feed

The place where I write this blog post, with a large monitor, a cozy lamp and my wooden friend
The place where I write this blog post, with a large monitor, a cozy lamp and my wooden friend

One year ago, in September 2023, as I became a freelancer, I decided to start blogging about development. I assumed it’d be good for my freelance career, plus I was very inspired by the online course Blogging for Devs that Omair, a coworker at Splash, recommended.

I’m very grateful to all those of you out there that write personal blogs with tutorials, explaining how to implement things or sharing strong opinions. And I felt excited about the possibility of contributing as well.

This blog post is dedicated to explain how I did it, how it went, and what I’ve learned.

Are you maybe going to create a blog too? Then this will interest you. Let’s go!


How I did it?

1. Setting goals 🎯

I already had a personal blog dedicated mostly to management. My purpose back then wasn’t to attract traffic, but to practice writing. My goal was to get good at writing.

But my goals with the dev blog were different. I intended to:

1) Be useful.

Drive traffic to my blog from developers looking for answers to problems I could help with.

2) Create work opportunities.

Create some freelancing opportunities, through other developers or clients finding me looking for specific technologies.

3) Build a portfolio.

Create evidence that I know my way around frontend technology, which again would help me get more freelance jobs.

I didn’t set any specific targets in terms of visits or opportunities created because I had no idea what I could achieve. In any case, I think it’s better to have small incremental goals and write consistently.

2. Writing consistently 📝

Writing consistently is a must because:

  1. It takes time to get good at it.

It’s like my skill programming. Through continuous practice, curiosity and feedback from others, quality gets better. Writing blogs is a skill.

  1. It takes time to learn to do it quickly.

Creating a post takes time. At first, it easily took me 8 hours. There’s a lot to it, like drafting the post, editing it, proofreading it, taking screenshots, choosing pictures, SEO

But the more I did it, the easier it became. Over the weeks, 8 hours became 4, and then became 2. But still today, I always separate the effort in two sessions: one for writing creatively and another for editing and polishing.

  1. It takes time for the content to be indexed, discovered and linked.

For example, imagine you write a post on April 1st. Google will index it maybe on April 3rd. Then, it’ll take a couple of weeks to go up in search rankings. And maybe a month later, someone more popular will reference it in their own blog. So until a blog post hits its maximum popularity, it might take between a month and a few months!

That’s obvious to me now, looking at traffic metrics of my site. I wrote consistently every 2 weeks between September 2022 and January 2023. My traffic started growing in January 2023, that’s 4 months after I had started writing. Fun fact, traffic peaked in July 2023, even though I hadn’t written anything new for 5 months! There’s a delay to it.

In the dev world, tech becomes outdated easily, so if I were you, I’d count on dedicating time to editing or re-writing blog posts that reflect the latest tech updates. Posts with outdated info lose relevance quickly. I actually haven’t been so good at this part, mainly because these days I’m not committed to the blog anymore.

Writing, writing, writing. That time, about authorization in React from Puerto Viejo de Talamanca.
Writing, writing, writing. That time, about authorization in React from Puerto Viejo de Talamanca.

3. Implementing the blog tech ⚙️

Since I’m a software engineer, I needed to write the codebase of my own personal blog. It couldn’t be another way 😅

At first, I used Jekyll, had the posts in Markdown and edited them with Siteleaf. It was free, customizable and easy.

But at some point I wanted more power to customize the experience, and I wanted to use React. So I re-implemented the blog using Next.js and Notion as the CRM. Notion is very cool and its API is free. I built a custom renderer to display Notion’s blocks exactly as I wanted.

However, in retrospect…

I don’t recommend implementing your own blog’s tech if you’re serious about focusing on the blogging part. It’s fun at first, but then it’ll just take time in many ways, like improving the Lighthouse metrics, adding dynamic sitemaps, fixing bugs, creating custom components, updating dependencies, migrating data structures, etc. These can be fun things, but they are also distractions from blogging.

Notion is very cool and all that, but, like everything else, it has limitations you don’t know at first. It’ll just take more time to set up than you can anticipate. Scaling isn’t obvious, you’ll have to think about when you fetch the blog posts, if you cache them, if you statically generate the pages, etc. And things might need to change as your blog grows in traffic and size.

Building your own blog tech is a project. A fun and educational one. But also it’s a distraction from blogging itself.

4. Leveraging Analytics and Search Console 📈

No matter if you use your own tech or not, it’s important to set up analytics. Blogs need the feedback of approximately how many people see what, for how long, and if they take any actions from it. Thanks to it, I discovered niche topics that drove a lot of traffic, and so I wrote more about them.

I used umami, an open source project that allows me to have control over the data and only collect basic information. I have it for free, with the web app hosted in Vercel and the DB in Planetscale.

That said, this custom setup has been a distraction from actual blogging, taking me hours of setup and maintenance that otherwise I could have been writing. So if you’re serious about blogging, my advice is just to use umami cloud’s free tier or Google Analytics and focus on creating content.

The Google Search Console was very useful for growing the blog. I used it a lot, requesting posts to be indexed, reviewing impressions and clicks of various keywords, and helping me identify types of content I should focus on.


How did it go?

Well enough!

In terms of my goals:

  1. During 2023, it has driven an average of 1,000 unique visitors per month.

  • That’s a lot for me! Considering I only wrote actively for 5 months, I feel it’s quite an achievement.

  • I felt thrilled the first time when someone linked to my blog from their website. It was a South Korean blog, so for the coming months I got a lot of visits from there.

  1. Regarding work opportunities, I got a few of messages from other freelance developers offering me to join projects they were working on.

  1. In terms of building a portfolio, it wasn’t so useful as far as I know, since I didn’t need to explicitly share my blog with a client to work with them. But I hope it contributed to creating an image of expertise with new clients!

It’s true that I didn’t stick to regularly posting during 2023. I moved my focus somewhere else. For me, I had already built a foundation of a dev blog, and I didn’t have the ambition to continue investing time on it.


What have I learned?

  • It’s easy to create useful content for developers out there.

  • Creating the blog tech myself took too much energy. I wouldn’t do that again. When you only have a few hours per week for blogging, it’s more productive to focus on creating content than on technical tasks.

  • Some SEO tricks, like starting the post with “How to…” or something similar was really effective to get traffic of devs looking for tutorials or solutions to problems.

  • When writing a post around a specific product, it’s worth sharing it in social media mentioning them or the company behind it. I’m rarely confident about doing it because I doubt of the quality of my content, but then I say to myself “come on Guillermo, just do it!”.


Metrics

Analytics

I’ve had more traffic than I imagined, and I’m sure that if I had stayed writing during 2023, I’d have more. Here are the analytics:

Analytics of guillermodlpa.com from June 2022 to October 2023
Analytics of guillermodlpa.com from June 2022 to October 2023
Distribution by country of the traffic in guillermodlpa.com
Distribution by country of the traffic in guillermodlpa.com

I believe development blogs have often high bounce rates and low visit times. They are usually short to read, and often they are found by developers searching for a solution to a coding problem they are facing. Devs also spend a lot of time Googling and reading other blogs, possibly more than in other fields.

I’m sure that blogs about other topics have different metrics in average. Like if you write about health, law, science or nutrition. The audience, the content they look for, why and when they are reading… everything is different.

Sometimes I thought how I could engage visitors to stay longer. Maybe with icons to give feedback, a newsletter, related blog posts… But in the end, as I implemented my own blog tech, all these things would take hours of development work and maintenance. So I had to ask myself how much I really cared about engagement at that time, and the answer was “not so much”.

Search Console

Google Search Console screenshot of guillermodlpa.com
Google Search Console screenshot of guillermodlpa.com

With Google Search Console, we see that impressions really started trending down the same month that I stopped writing consistently. I hear Google does give more value to blogs that are frequently updated. But who knows, it could be also the impact of ChatGPT and devs not searching in Google for solutions as much.


Is it worth writing a dev blog?

For me, yes.

I’ve learned a good amount, improved some skills, and have had fun in the process.

For you?

You’ll have to figure out yourself.

You can check out all my development posts here: https://guillermodlpa.com/blog/category/development

Cheers!

Back to all posts