You decided to start blogging, great! Or you’re one of these people that think about blogging but haven’t started yet (I’m looking at you David) because you have no idea where to start. In this post I’ll try to give you some advice on how to go about get a blog started and how to ensure that you own and manage your content in the best possible format. My advice may even help seasoned bloggers as we all learn as we go and the tools we’re so accustomed change – FAST!
If you’re a developer and you’re still trying to come up with a reason about why you should blog, have a look at this [earlier post]( https://cmatskas.com/why-you-should-blog/" target="_blank). Go on, I’ll wait…
Convinced? Excellent! Let’s see how we can get started because the tools are plenty so you may easily get overwhelmed. However, this post is not so much about tools as it is about making sure that you own your content. This is particularly important as other avid bloggers have highlighted in the past. Take for example Scott Hanselman’s [opinion]( http://www.hanselman.com/blog/YourWordsAreWasted.aspx” target=”_blank) on the subject (don’t just take my word for it). With this out of the way, we can start looking at what you need to in order to get started.
A blog engine/platform
Find the right tool for the job and one that makes sense for you. I started by using [WordPress]( https://wordpress.com/" target="_blank) and it was find. But it soon became slow and chunky and full of add-ins. So I moved to [Ghost]( https://ghost.org/" target="_blank) and I’ve stayed with it ever since. I flirted with other more exotic engines such as [DasBlog]( https://github.com/shanselman/dasblog" target="_blank) or [MiniBlog]( https://github.com/madskristensen/MiniBlog" target="_blank) (both based in .NET) but I came back to Ghost only because I wanted to play with Node.js and learn more about this Open Source platform. Many people also like [Github Pages]( https://pages.github.com/" target="_blank). For some, it’s also a choice between WYSIWYG editors and markdown. Find what works for you and go with it.
This may also affect your platform decision. Do you want to self-host or do you want to delegate this responsibility to someone else and use it in a Platform as a Service (PaaS) model? How much control do you want to have and how much do you trust the hosting platform? Both Ghost and WordPress come with hosting (pro) options and, for most people, that’s more than enough. Because your goal is to write about stuff rather than play with setting up, running and maintaining technologies you may or may not be familiar with. Unless, this is your "cup of tea" and you’re a glutton for punishment (like me). Github Pages are hosted by default. Hosted options are not free but they’re not expensive either. The basic service is only a few dollars/pounds per month. I use self-hosting for my blogging platform. I use Azure Websites to host my Node.js, Ghost blog and I like that I can update (I mean brea, yes break) my site whenever I want. However, I’m also responsible for the backups and maintenance of the site. The choice again is in your hands.
Custom domain name / branding
Make sure you decide and create a brand and stick with it. Are you going to use your name as your brand or do you want to use an alias or brand? No matter the choice, you’ll need to buy the domain name. Where from, it doesn’t matter. Find a registar and get your domain name. Then, apply it to your site. However, there’s one thing you need to avoid here. Don’t let the branding and blog theme/design hold you back! Instead, start with default settings (apart from security!) and start writing. Publish as soon as you can and make sure you get in there while you’ve got the appetite. It only takes a few times to repeat an action before it becomes a habit. This stands both for good and bad habits. So start writing and focus on your design and branding later. You can apply changes to your layout later. The content shouldn't change anyway.
Add SSL to your site (HTTPS)
“But I don’t need/collect user’s credentials”, you may say. I hear ya. However, you don’t know where your site will end up. You may start getting hundreds of thousands of visits a day and you may want to monetize on that. SSL also helps you rank better in Google search results based on a recent change in the [Google search algorithm]( https://www.seroundtable.com/google-ssl-seo-ranking-13236.html" target="_blank). Your site will also be protected from session hijacking and man-in-the-middle (MITM) attacks etc. And best of all, this can be totally for free. I use [StartSSL]( https://www.startssl.com/" target="_blank) but you can also use the cool, new kid on the block – [LetsEncrypt]( https://letsencrypt.org/" target="_blank). Or the SSL provider of your choice. Just don’t pay any money!
Setup and test your backups
No matter how you decide to host your site, you want to ensure that the content is safe. Imagine if the WordPress servers melted down and they had no backups (foolish, I know, but totally plausible). The same for any other hosting provider. On the other hand, if you decided to manage the hosting, then backups are your responsibility. In my case, I use the backup facility on the [Azure WebApps]( https://azure.microsoft.com/en-gb/services/app-service/web/" target="_blank) platform to take a backup daily and store it in blob storage. The amount of times I had to revert to a previous backup due to messing up my site is pretty high so I’m glad I have that. On top of all this, I always keep a hard copy on my OneDrive so if all goes to hell and everything is gone, I can at least manually restore my site by uploading my data to a new site. Use the tool that makes sense, just make sure it works and you test your backup/disaster recovery process regularly.
Use a text editor helper
MS Word and other editors are great to helping you put your thoughts on “paper”. However, if you plan on writing regularly, you want to ensure that you use a better tool with some more advanced capabilities. I, for example, use the [Hemingway app]( http://www.hemingwayapp.com/" target="_blank). The online version is free but you have to be online. There’s an offline version for Windows and OS X but you have to pay for it. This is the only paid tool in my setup and it’s highly optional, especially if you’re only starting. Personally, as a non-native speaker, having a tool that helps me create small, uncomplicated sentences is invaluable. You can test random text on the online version and see how it lights up everything too long or complex with yellow and red. Just don’t go overboard with your sentences and remember to use punctuation.
You goal is to make your blog as modular and easy to manage as possible. In case of code snippets, I’m a big fan of [GitHub Gists]( https://gist.github.com/" target="_blank). The code is hosted publicly and its external to your blog engine. There are a few pros and cons in this approach.
- Smaller posts as you don’t have to include all the code
- Consistent look and feel using GitHub’s familiar “textbox”
- Automatic syntax highlighting based on the language and file name extension
- No need for external libraries to add syntax highlighting to your site content
- You can easily update your code without having to touch your site
- People can send you pull requests with better versions of code or bug fixes
- External dependency to GitHub (if GitHub is unreachable, your code snippets will also be unavailable)
The pros seriously outweigh cons but, once again, the choice is yours. Another option which I used successfully in the past is using the Prettify.js library from Google. You can find more info [here]( https://google-code-prettify.googlecode.com/svn/trunk/README.html" target="_blank)
Compress images and don’t self-host videos
Before uploading images, remember that your readers will be accessing your site from all sorts of devices and connections. Do them and you a favour and compress your images using one of zillion free apps out there. It only takes a second and it will save you some costs in the long run. But most importantly, your readers will thank you (even if they don’t say it out loud). Videos are a different story but if you have to add videos to your pages, upload them to a third party service (YouTube or Vimeo) to take the load of your site and reduce your hosting costs. This will also keep your backups small and will force you to have a backup file outside your site. Finally, hosting your videos on an external site will help out with bandwidth issues as they hosting provider will have to worry about the level of service provided.
Images and videos are always useful as they make your site look nicer and can convey a message better than simple text. However, unless you create your own images and videos, you need to be extremely careful with copyrighted material and remember to always attribute the rightful owner. Just because you found it on Google Images doesn’t make it free!
Add an Open Source (OSS) license to your website
If you’re writing a technical blog, it’s highly probable that you’ll have code examples and samples to accompany the content of your posts. It’s advisable that you add a copyright statement/license such as [MIT]( https://opensource.org/licenses/MIT" target="_blank) to ensure that everyone can use and change your code freely. Developers working in companies with tight controls around code may be unable to use that extremely awesome piece of code you wrote because you haven’t explicitly given them permission to do so. A simple statement on the footer of your website granting permission or pointing to the MIT license should be enough.
That’s all I have for you in this post. So go out there and create some amazing content. If you think I’ve missed out something or have a favourite tool to suggest, feel free to let us know in the comments.