I decided to create a simple Ghost theme with infinite scroll. I challenged myself.  One project each week. And this is the first project in this series.

Do it fast, evolve later.

Let's start. First, I checked the official guide and found that I need to learn a new template language - Handlebars. I thought that it's not a problem for me, and I was right. It was pretty easy and straightforward because I've already used similar template languages before(Twig and Blade).
The Ghost folder structure is pretty simple. My first problem was that Ghost does not support the latest version of Node. So I needed to downgrade it, from 12 to 10, blah.

Few magical commands

brew search node
brew unlink node
brew install node@10
ghost install local

And voila, it was up and running.

I've decided not to learn documentation but rather start writing code. Peter Levels and his blog inspired me, so I decided to create a similar theme. But with some difference.
I created a few sketches in my notepad.


You know it's always better to see some visual material while you were writing code and creating a design.

Well, I am not the best painter in the world, but I wanted to do it as fast as I can.
So on day one, I've created a frontend page so, it looked nice(IMHO), with working scroll and stuff.
On the next day, I've decided to move on to post page and created a similar sketch for the post and started coding like insane. However, I forgot how to write the right CSS code(mostly because I am a backend developer). But I love frontend and design. So I spent some time on CSS-tricks and read about flexbox and how to work with flex.


Flex is freaking efficient.

I thought I would spend two hours and finish this template, but it turned out that when I changed some styles on post page something broke on the main page. As usual :D


Write less code. More code generates more bugs and thus generates more code. Recursion.


But after pain, struggle, and suffering. I finished it, and I was thrilled that day because I achieved what I wanted.
By the way, I used and still using productivity hacks, you can read about them in my next post. But in short: I write down from three to five main goals each evening for the next day. And I am trying hard to finish them by the end of the day.
Okay, so when I finished this post page I decided to create a simple gif to share on Twitter, so here it is: By the way I used and still using productivity hacks, you can read about them in my next post. But in short: I write down from three to five main goals each evening for the next day. And I am trying hard to finish them by the end of the day.

Okay so when I finished this post page I decided to create a simple gif to share on twitter, so here it is:

via GIPHY

I used to play World of Warcraft in old times, so I decided to name my theme as an Affliction warlock and used some beautiful art graphics which I found on the internet.


At this point, I needed to complete only tags and list of posts related to a tag and some cosmetic fixes plus create a Gulp file to compile and uglify my CSS and javascript files.
On the third day, I almost finished the project. I fought with a lot of bugs actually, but after a few hours of productive fixing, I finished!

I updated a Github repository with beautiful configuration and documentation. Created subdomain for this theme affliction.antistartup.com and I'm thinking to push this theme to share for free on any marketplaces like Envato or TemplateMonster. I finished the project in four days instead of one week. Also, it's worth to mention that I worked on this project as a side project, because I have a full-time job.

The final result you can find here - https://github.com/neok/affliction

In conclusion. I think that when you work on something you like or that you would like to use later, it's much easier to keep moving forward and finish it. I encourage you to go now and do something!
If you liked this post, feel free to say hello on Twitter.

Bye!