Writing blog posts can be pretty tricky -- it's hard to come up with a topic to write about let alone actually create the content. I've been blogging more and more, and I wanted to give my advice for writing posts -- from the topic through pressing the post button! If you're interested in my advice for starting a blog, I also have a post on that here.
1. Finding a topic
Sometimes, finding a topic for a blog post is one of the hardest parts of creating it! Here are a few tips for finding topics:
Don't worry too much about having a totally unique topic -- definitely don't plagiarize somebody else's post or copy their ideas, but people still read my React intro even though that topic has been done a bunch of times. I had a different outlook on the subject, so I decided to write it anyways.
Write the blog post that would have helped past you. When you're searching for something and not finding it, or you're finding tutorials that aren't helping very much, take note of it so that you can write your own take later. Thank you so much to LaQuita for suggesting this one!
One thing I do, is to reach out to your network and see what posts people want. I'll occasionally post a Tweet asking what types of posts people want. People also reach out to me on a pretty frequent basis asking for my advice or opinions on things. I take note of ones that I find especially interesting or relevant to a broader audience. You can also look at sites like Quora or Reddit and see what people are posting there. If a question is especially interesting to you, you could write a long-form response to it.
You have a unique story -- so share it! Share your backstory and how you started writing code, or the story of your career progression, or even just a problem that you solved. It can be tough to be personal and to share your story online, but it can really help people.
I firmly believe that creativity can stem from constraint. I always dress better when I have a dress code at work because I have to think creatively to fit within the guidelines instead of just throwing on whatever. When I started blogging, I followed the theme of writing a post each week about an app I built with a technology that was new to me. There were so many technologies that I wanted to learn, that I always had something to write about -- the only thing that made me stop was time constraints! Vaidehi Joshi's wildly successful BaseCS series is another excellent example of closely following a theme.
I keep a running list of blog post ideas using TickTick - which is the to-do list app I use. Writing down topics when I think of them is important -- I will totally forget them if I don't. At the beginning of the month, I make a content calendar with what posts I actually want to write that month. I don't always stick to the content calendar, but its good to know what I want to write in advance and to know that there's a balance of different topics and genres.
2. First Draft
Once I have a topic, I usually just start writing any thoughts that I about it. My process is really disorganized here -- I'll jump from place to place in the post, outlining some parts and then writing paragraphs in others. I let myself be really creative, and I jot down whatever I'm thinking. As I write this, the current paragraph is entirely written out, but the beginning of the post is just a set of phrases like "creativity from constraint" and "Share your story." Other people are probably more methodical, but this works well for me.
Then, I go through and make sure that I've completely written out each part, and that I'm happy with the post.
There are a couple things I focus on about the content:
That it is accurate - of course with technical content, the facts need to be correct, and the code needs to work. I usually copy and paste code from complete apps I've written, so that I for sure know that it will work.
That it is understandable and fits my target audience - another essential thing to do with your blog posts is to identify your target audience and gear your writing towards them. Is your target reader a Node developer that wants to learn the SQL library Knex? Or, is your reader a complete newbie who will need the concept of a function explained while you're building your Node app. You want your post, generally, to appeal to a pretty broad audience, so I usually gear my posts towards people who know the fundamentals but don't know the specific tool I'm talking about. You usually want to target your posts to a relatively similar audience so that people are interested in your work from post to post.
I don't use walls of text. On the internet, people are used to short blocks of text broken up with visuals that are easy to scan. Add bullet points, images, and subheaders to your posts to add more visual interest. My posts are generally in between 2,000 and 3,000 words, but they don't feel like that much because there aren't huge blocks of text.
I write my content using my text editor VS Code. The Markdown support is fantastic, and I have a spellchecker to catch issues as I go. It has a preview tool so I can see what the final Markdown will look like if I want too! I like being able to customize my setup, so I really like using VS code for this process.
3. Revision
Next, I run my post through Grammarly -- I have the pro version. I like how it allows me to choose the tone I'm trying to use in the post and the audience, and how I can "teach" it to be more accurate for my writing. It also picks up on overused words, which can be really helpful as well. I copy and paste my text into the desktop editor, and then go through each error making sure that the content is good as I go.
4. Visuals
The next step in my process is creating visuals for social media and to add visual interest to my posts. These usually have the tl;dr versions of my posts, or just the headline. I make them in all of the preferred sizes for social media sites so that when you press the share button or share the link to a post, the image should look pretty good (at least on my site)!
I draw these up in Sketch, I have a boilerplate setup that I just copy and paste that contains the different artboards for differently sized images. Then, I just add in the designs I want for the post and format them!
5. Publishing
The final step is to actually press publish and send your post into the world! I highly recommend posting to someone else's site at first, or at least crosspost -- unless building and maintaining the blog infrastructure is your primary goal! Right now I post to my own site, dev.to, and Medium. I also tried LinkedIn once, but it was tough to format, and only around 100 people read it, so it wasn't worth the effort in my experience. Medium can be tricky too, but Markdown to Medium makes it a little easier -- it converts your markdown code to Gists, so you don't have to worry about the weird Medium code formatting!
Honestly, for me, pushing publish is often the hardest part. I have a graveyard of unpublished posts on my computer that I may or may not post at some point. Honestly -- I regularly wait until days after writing my posts to publish them because of nerves. I want to list some of my common worries and how I push myself to still eventually post.
Nobody's going to read my post: So what. I've already put all the effort into writing it, worst case scenario I benefit from writing the post but nobody else does.
I'm not experienced enough to write about this: If you have a blog post that contains mostly correct information, or at least your interpretation of the topic, then you're experienced enough. There are lots of excellent posts out there from the perspective of newbies, and they're really important!
What if my code is wrong? Or I got a detail wrong?: It happens! I've had bugs in my articles before! So have lots of people. Sure, somebody might be rude about it, but in my experience, most people just want to help. Plus, then you learned something new from writing the post, and you can edit easily enough!
What if people are mean on the internet?: this is my new problem -- it has been really cool to see my blog grow a little bit, but with that rise comes a downside. There are now a lot more rude comments towards me on social media and inappropriate advances. I'm definitely not perfect at dealing with this, but I try to remember that there are so many more positive comments than negative ones, and hopefully my posts are helping some people out there. I try to ignore them, and I've stopped looking at threads when my posts show up on sites like Reddit or HackerNews that can have more toxicity along with the anonymity. Yeah, people can be rude, but way more people are friendly and benefit from what you're doing.
So, go out there and publish some blog posts! I can't wait to see them.
Keep in touch
If you liked this article and want to read more, I have a weekly newsletter with my favorite links from the week and my latest articles. Also, tweet me your blog posts, I would love to read them! If you have any questions, my AMA repo is the best place to reach me.