API gateways are great for development teams because they expose the data you need for all kinds of different purposes in a central location. There are a few great REST API gateways out there, like KrakenD, but what if you wanted to go in a different direction and choose GraphQL for your API infrastructure? Well, that works out perfectly, as it’s one of the goals of GraphQL: Abstracting many different services into a single place and allowing the developers very fine-grained control over the data they need.

In this post, we’re going to look over a GraphQL implementation, which keeps…


Ansible is a server orchestration tool that you can also use to perform workflows on remote machines in a predictable and repeatable way. In a previous post, “Automating Laravel deployment using Ansible”, I’ve lined out how you can deploy an application using your GitHub username and a user token using the Ansible Vault. However, you can also do this using SSH, making sure your server only has pull-access to your application repository. This extra layer of security is quite easy to accomplish, so in this post, we’re going to look at how to do this.

In this blog post, we’ll…


If you’ve been working on the performance of your websites for a while and haven’t tried service workers yet, keep reading. A Service Worker is a script that runs in your browser which helps to optimize asset loading on your website, even allowing the caching of assets in the browser for offline usage. This is not an in-depth tutorial about the ins and outs of service worker, but rather an insight in the benefit the service worker brings to your website’s Lighthouse performance score.

For this post, I’m using Lighthouse, because this checks the performance at this moment in time…


As you might have read in earlier posts, my blog is built using Laravel and my own CMS Aloia CMS. This CMS is as flexible as I’d like it to be and I can make changes by extending behavior in PHP. I’ve migrated everything to Aloia CMS last year, as it made creating content very easy and it lowered the barriers to write content rather than have to work around current systems. Aloia CMS allows me to shape my own workflow and not shape my workflow to fit a certain system.

As the CMS conforms to my own workflow, I…


We all know that we should use properly sized images instead of using full-size images and making them smaller with HTML or CSS. Full-size images are larger in size, sometimes megabytes instead of a few kilobytes. When you’re loading a page, this makes the load times take much longer, because all that information has to be served to the client. Using properly sized images, you’re only serving what you need to. This could reduce your giant 5 megabyte image down to just a few kilobytes. Your page loads much faster, especially on mobile devices and Wi-Fi.

Only serving smaller images…


Running tasks in Ansible can be done in different ways and this can be very confusing for those starting out with automation and server orchestration. In this post, I’ll explain the difference and why you should use one or the other for certain situations. If I had this post when I started with Ansible it would’ve saved me hours of researching, so hopefully, this helps you.

Tasks

Tasks are…well tasks. They are specific to a workflow, called playbooks, in Ansible. If you read my post from last week, Automating Laravel deployment using Ansible, you would have seen the configuration I shared…


If you, like me, have been deploying changes manually to any of your websites consistently for months, if not years, you know that this is a repetitive task. Usually, you pull your changes from your version control system (VCS), run a few tasks to install production dependencies and/or compile them, cache your configuration, and reload some kind of service. It’s usually the same few steps with a few optional steps, in case you need to run database migrations for example.

What is Ansible?

You know that if something is repetitive, you can automate it. This is where Ansible comes in. Originally, Ansible is…


Command Line Interface (CLI) applications can automate your work in many ways. They can be used to build your applications, deploy code, run processes, and do all kinds of other miscellaneous tasks. Developers often favor CLI tools because they don’t require a user interface, often have consistent behavior in different environments, and are much easier to configure and distribute. The Go community has become much bigger in the past few years and because of this, there are several CLI tools that have migrated from bash scripts to Go binaries. …


Structured data is a way to normalize your data and Google uses it to understand better what your website and specific pages are about. This is where you can help Google by providing this kind of information on your website. In turn, Google can use this to improve the appearance of your website in the search results. If you’ve ever seen an FAQ, company details, and news articles in your search results, then you’ve seen what structured data can do for your website.

In this post, we’ll go over a few common structured data types that you can add to…


So you want to host your static website on GitHub Pages? Excellent choice! In this tutorial, I’m taking you through the steps to host your static website on GitHub Pages and how you can deploy your own changes. After this tutorial, you will be able to automatically deploy your own website to the internet. Before we get into the steps you have to take to publish your website to GitHub Pages, I will outline a few options and limitations you have when using GitHub Pages for your website hosting.

What are my options for hosting a static website?

There are a few options you have for hosting your website…

Roelof Jan Elsinga

I'm a web developer, working with Docker, Laravel, Go, Angular, and Solr. My posts can be found on my personal blog at roelofjanelsinga.com

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