In this article, I am going to take a little bit of time to explain my blogging journey and why now I am using a new framework to blog.
I started to blog around August 2017 about some side projects around data and dev , the key factor to start this has been to put somewhere some projects that I was developing to get some feedbacks on it and maybe help people that are trying to execute something very similar to what I am doing (most of the blockers that I met during the development of a project are solved by the reading of an article in a blog or on Medium)
So I investigate on what could be the best way to blog and Medium seems a good fit to do that, nothing to handle just create an account and you are on board to start to write. But as I am a little bit a crafting/DIY guy I searched and I found that an easy solution to deploy a website that you can customize was GitHub pages .
GitHub Pages is a solution offered by GitHub to host a website powered by the framework Jekyll that give you the ability to build static website pages with markdown so that's very convenient and it's working pretty well. You have plenty of templates around the web that you can easily customize and it was really great.
But during a recent break, I started to investigate other solutions for the following reasons:
- Need to have a process to deploy an article more easier : With GitHub pages you need to push pull your code from a GitHub repository so that's easy in some ways but in another it's not really convenient when you want to write quickly an article
- Handle the pictures link etc more easily : As to deploy an article with GitHub pages you need to fill a markdown file , you have to link all the external content with the markdown and honestly ....
- Reactivity : I found the website on GitHub pages a little bit too static and I am not a web developer I didn't wanted to take too much time on that aspect
- Be more independent : As I progress in my computing journey I wanted to have more liberty to deploy a website everywhere I want and not be stuck with Github.
My investigation bring me quite quickly to a framework call Ghost that seems too fill what I need.
The framework is defined has the first open source headless Node.js CMS, this project is coming from a Kickstarter that started in 2013 and honestly it's great with Ghost I can :
- Easily build article , with an interface in my browser , no need of push pull to continue some writing on the go
- There is drag and drop function to handle external contents like pictures
- The website (with the themes on the marketplace) looks gorgeous
- The framework can be deploy easily on everything (like a raspberry pi for example)
I think that there is plenty of other functions in the framework that I will discover in the future but honestly my first week with it is very pleasant.
Setup and advice with Ghost deployment
I deploy it on an EC2 instance of type t2.micro ( if you are just starting AWS it's on the free tier).To access the EC2 instance, AWS has a very good tutorial available at the launch of the image
But you will see that using this image will give a little banner (promotion of the company) when you opened the website the first time but it can be easily be deactivate with this command line in the terminal of the ssh connection with your EC2 instance.
sudo /opt/bitnami/ghost/bnconfig --disable_banner 1
And after you just need connect to the admin portal by copy pasting of your IPV-4 address followed by /admin (the first connection has to be done with the credentials that are on the image, it's explained in the docs)
And finally to add your domain name at the place of the IPV-4 address just follow the the tutorial of Bitnami.
And voila ....
This journey on GitHub was very cool but it was time to go a little bit further to make my writing a little bit more easier.
But I really advice to someone that want to start to blog and that is not afraid to code to use GitHub pages because it's very easy to put in place and personally I think that I will use it to get an interface to the GitHub repositories that I have.