I haven't posted anything during the last weeks - but not due to lack of creativity but to build a new and better version of my blog. And it's finally done; I'm really proud to present you the new version of nehalist.io!

Built with Gatsby

The biggest change (despite the new look!) is that this blog is no longer served by Ghost and instead has become a static site built with Gatsby.

Content is (partially) still served by Ghost. Even though my last post was about me not really enjoying the Ghost blogging platform anymore switching to something else would have added additional weeks of work.

If you're interested in how the entire page is built you can find it on GitHub.

Why a static site?

There are very little benefits in using Ghost over a static site - while using a static site does indeed provide some neat features. For example it's fast. Ridiculously fast. It's secure - no one's going to hack these HTML documents. It's lightweight - the server is basically just serving files without having to do any real work. Especially due to it's speed I was able to increase my Lighthouse performance by over a hundred points to a perfect score:

Nearly over 9000.

Carraway: A static site helper

Static sites are great but there's one thing which required additional work: handling form submissions (the newly introduced contact page) and subscriptions. Due to the static nature you can't just handle submissions on your backend - there's no backend.

So I needed some kind of tool which provides an API for contact form submissions and subscriptions. To my own surprise I didn't find a robust solution to this problem; they either were pretty expensive, didn't work (broken demos are a no-go!) or weren't self-hosted and had a pretty weird privacy policy.

The only solution to this problem: I'll create this thing myself.

Two days later Carraway was born - a Symfony application which provides two endpoints for handling form submissions and subscriptions (which are automatically synced with Mailchimp). It's MIT licensed, so everyone can use it. There'd be a lot of ideas for Carraway, like dynamic APIs, etc. - maybe someday I'll find time for implementing these things. But, for now, it's just an API (with a very simple UI) which helps in running static sites.


My previous version went online in October 2018, while the first iteration (using Ghost with the default theme) was online for more than three years. So you might wonder: why did I ditch the previous version after such a short amount of time?

Honestly, I was just not satisfied with it. I didn't like the look of it. I didn't like how it felt. It's a bit like with cars; if you don't like your car driving it becomes kinda of a pain. And that's exactly what I felt when I looked at my blog. To overcome this I had to re-evaluate my choices and ultimately went for an entire redesign. And, so far, I'm really satisfied with the outcome.

Carbon ads, ad revenue and support

Another major change is that I switched from Google Adsense to Carbon. But before diving into the reason for this or what my personal expectations are for this change let's take a brief look at ad revenue and how ads worked out so far (like I promised in the introduction post of my previous blog version).

Ad revenue so far

Since October 2018 ads shown by Adsense have generated me approximately 500 bucks. That's makes around 60 bucks a month. I wanted to cover my expenses (around 20 bucks a month) and I've achieved even more - that's really cool!


Carbon is, like Adsense was at the beginning, kind of an experiment. I was lucky enough to get invited and we'll see how it works out.

Additionally the ads fit pretty good into the new design!


Since I've drastically reduced ad slots (currently there's a total of three ads throughout the entire site) I've added a support section where you can buy me a coffee or things from my wishlist. Again, this is an experiment; I have no idea if (or how) it works out. We'll see.

Newsletter: Now working!

The previous blog version offered a subscription form where you can sign up for getting the latest posts directly per mail. And you know what? I totally messed this up, because this thing never worked. The reason for that? I simply didn't know that Ghost doesn't send newsletter by itself and relies on third-party services.

And believe me one thing; you have no idea how bad I feel about this. I'm really sorry!

But I fixed that. I'm now using MailChimp which will be responsible for sending updates to subscribers from now. If I configured everything properly there should be one mail per month.


I've ditched most of my side projects in favor of focusing on my blog now. I've got a pretty long list of things I'd like to write about - and since I really like my new blog that's exactly what I'm going to do.

So stay tuned for new posts, enjoy the new nehalist.io and feel free to leave some feedback in the comments!

– Kevin