Most of us avoid dreaded git reset command — but actually it can be really useful, as long as you know how it works!

What does git reset do?

To put it simply, git reset will take your branch back to a certain point in the commit history, but there are 3 different levels to this:


After spending a while fighting CORS issues using a headless Magento 2 setup, here is how I solved the issue using nginx.conf

CORS error messages in Chrome console

Before jumping into a solution, I think it’s important to understand what is happening and why

What is CORS?

CORS stands for Cross-Origin Resource Sharing and it basically controls which sites can access the resources of another site. If you are running applications on different subdomains and/or domains and they need to talk to each other, then you will need to setup CORS.

How do we setup CORS?

You will need to send specific headers from the application that is being accessed. So for example, if…


Next.js 9 brought in automatic partial static export that automatically determines if pages can be rendered statically. To make the most of this, you can’t use the widely used Redux wrapper so here is how you can setup without this.

I should mention before you start this tutorial that the Redux wrapper was created for a specific purpose, so that actions are consistently dispatched on all pages on client and on server. So if you need that functionality, then you should continue to use it. This tutorial is for sites that always dispatch on the client side.

Why would you need a hybrid application? This was the case for me because I had a Shopify application with the server dealing with initially authorising my application and any AJAX API requests.

So the most important thing to make sure that your…


Sadly, accessibility is not often given the priority that it should be. It’s harder to make a website accessible at the end of development than during development.

Photo by Simon Gray from Free Images

Accessibility is so important and unfortunately, it’s not often seen as a priority in companies unless a client requires it, e.g. for government sites. The fact is that all sites should be inclusive and you could even find yourself facing a large fine if a disabled user is unable to access your services.

The World Wide Web Consortium (W3C) has a set of Web content accessibility guidelines with 3 levels of conformance: A (lowest), AA, and AAA (highest). …


I have built a Shopify admin application using Node.js and Next.js and I have been looking at the best places to host it. I originally used Heruko which is super simple and requires barely any setup. However, the free tier is not very reliable and I didn’t want to pay for upgraded plans before I know if the application will be successful. After doing some research, I found out that Google App Engine offers a really good free option as long as you stay within the limits. …


Imposter syndrome written in a book. Image from Pexels

I remember when I first heard the term imposter syndrome at a conference and it was a real revelation for me; in a room full of hundreds of talented lead developers, only a handful had never experienced this.

Imposter syndrome is essentially the feeling that you’re not good enough and you’ve got to where you have by accident. It sounds ridiculous when you say that; how could you have faked years of experience and delivering great projects? But it’s a very real feeling.

The thing I’ve learnt during my time in industry, is that imposter syndrome is usually the sign…


I’ve recently created my website using GatsbyJS and it’s brilliant. I come from a full stack background, with a lot of back-end experience in PHP so the JAM stack is a different way of thinking for me. However, I’m all about embracing new technology!

My website is fairly simple and doesn’t really need a back-end so it seemed silly to use a CMS with a database; as a developer, I can easily add new information without the need for a fancy admin area. …


Sometimes we need to make sure that anonymous users are redirected to the login page. In Drupal 7 we were able to use hook_init, this was called at the beginning of the page request. This has been removed in Drupal 8 due to events being introduced.

The event system is built on the Symfony event dispatcher and allows components to communicate with each other, whilst allowing them to remain modular. …


In Drupal 7 we had view modes, where we could specify different views for an entity and show different fields within each view. Drupal 8 now extends this further and allows form display modes. These are incredibly useful, as they can be used to easily create multipart entity forms. For this example I’ll show you how you can split up a user registration form into multiple forms using the display modes.

First of all, I’m going to add some custom fields to the user entity. …


When you create a date time field in Drupal 8, it stores the date in UTC format and takes into account daylight saving time (DST) too. This means that if you have a field that has a date that is after the switch to DST and the current date is before the switch, it will display the time an hour out if you haven’t formatted the date correctly.

You might see a lot of examples out there that show you using the standard PHP date functions and pulling the raw value from the date field, however this does not work…

Charlotte Bone

I am a creative, passionate, full stack developer. I love technology & I really want more females to not be afraid to pursue this career / Engineer @stacker.app

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