Sign in

Starting a web project is more than just hacking a some lines of code and you’re done — at least if you want to create something good and sustainable.

Having a solid foundation to work on — tools that help you to improve the product you’re working on — has become a necessity in a fast-paced web development world. Making it possible for others to contribute requires some preparation — but gladly throughout the years some de facto standards have established which we’re going to cover in this post.


Using version control is mandatory and Git is always a good…

RxJS can get confusing sometimes and it may not be obvious at first how to do certain things. One of these things may be how to do multiple HTTP requests the right way — but gladly it’s not too complicated.

There might be two different cases for executing multiple requests; either one by another (sequentially) or simultaneously (parallel).


This approach depends on Angulars ` HttpClient` — hence this.http will always refer to the HttpClient.

Additionally, to make it easier to follow, this guide will use a simple PHP script as API:

header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json");
$timeout = isset($_GET['timeout']) …

GitHub actions are currently in beta and I was one of the lucky folks to get beta access. For various reasons I’ve decided to switch the entire build process of my blog to GitHub actions — let’s talk about the why and how to build and deploy Gatsby sites with actions.

Why tho?

In case you’re just interested in the actual guide you can skip this section — but I’d like to explain why overhauling my build process — and this post — were never planned and why they were still mandatory.

There hasn’t been a new post for more than month…

If you’re into web- and software development it’s likely that at some point you’ve opened a terminal.

Since one terminal is often not enough tabs may be a useful addition. But at some point not even tabs are enough; switching between tabs which all belong to the same project is just annoying — but as of today a lot of projects require multiple processes to be run; one for running your application, one to watch log files, one for running commands on the fly and eight docker containers where you know what at least five of them are used for.

Since I’ve recently replaced Disqus with Commento I thought it’d be a good idea to share how to embed a different commenting system — in our case Commento — into your Gatsby site (or React app in general).

Zero dependency component

Disqus has an official package for embedding it into React applications which I used to add Disqus to my blog. For Commento I wanted to get rid of the additional dependency; additional dependencies increase maintenance and always come with a certain amount of risk. …

My blog is online for four years this summer — time to share some numbers and thoughts about it.


Before diving right into numbers we need to keep some things in mind:

  • I’ve neglected my blog multiple times. That’s something I’m not proud of — but it’s important to know for this post. In four years I’ve only published around 50 posts.
  • This post will only be about the domain which was registered in September 2014.

This post should give you an insight in “how my blog is doing in terms of being programming blog”.


Let’s start with some…

I stumble upon great open source libraries or tools nearly every day — some of them having thousands of stars of GitHub and I’ve still never heard of them. I guess the fact that there are more than 100 million repositories just on GitHub somehow explains that.

Nevertheless, I’ve always liked to do some kind of series on my blog — and I guess showing some of my findings is a pretty good way to do so — especially since some of them have become an important element of my very own workflow.

So here’s the first (of hopefully many!)…

Even though I work pretty much everyday with TypeScript there’s something new I learn about frequently. I really enjoy working with it and try to get the most out of it whenever possible — and there’s one thing for sure: TypeScript can do a lot of things.

So here are some things I’ve learned through time which helped me to improve my applications and — ultimately — become a better TypeScript developer.

Utility types

TypeScript provides some useful types right out of the box — they’re called utility types and can be found here.

One of my personal favorites is the Readonly<T>

Reading progress bars, like the one you can find on my blog at the top of single posts, are a nice little addition to give detailed information about how far the reader has progressed on the current post. The scrolling bar is not really meaningful in this regard; it includes your entire page, which means that your header, comments, footer, etc. are part of the indication.

Creating a reading progress bar which tells you the actual progress of just the current post content in React is quite easy — especially with hooks, which make our component even smaller.

The ReadingProgress component

Our ReadingProgress

The concept of associative arrays in PHP is kinda uncommon; most languages implement this concept with maps, lists, dictionaries or similar constructs. And, even if associative arrays in PHP are possible (and heavily used), they can get a bit confusing as soon as you want to work with them in your JSON API.

Associative Arrays in JSON

Let’s take a look at what happens to associative arrays within JSON responses.

$data = []; 
// Becomes [] in JSON
$data = ["one", "two", "three"];
// Becomes ["one", "two, "three"] in JSON
$data = [0 => "foo", 137 => "bar"];
// Becomes { "0": "foo", "137": "bar"…


The guy behind

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store