Using Zustand to manage application state in React
One of the downsides to Controller/Reducer-based state management is that a single piece of state needs to be passed from Component to Component up and down the cascade - regardless of whether that component needs the state or not. Zustand promises to alleviate that.
Manually copying VS Code extensions
Sometimes you can't use the inbuild sync to transfer your extensions from one VS Code to another. Learn how to do it programatically.
Quick and dirty server 2
Sometimes you just want to serve a static site without installing all kinds of stuff (2022 Edition)
Trim trailing slash
Sometimes a URL has a trailing slash, sometimes it doesn't. If we can't be certain, we need to handle either eventuality.
The three rules of engineering
dotenv for bash
Sometimes you need to access process.env in a bash script…
How to create a global .gitignore file to define a list of rules for ignoring files in every single Git repository on your computer
Catch your errors
If there's one thing I've learned, it's that your code will go wrong. You need to accept that and catch your damn errors!
Semantic HTML is the process of using HTML5 tags to reinforce the meaning of the information contained within a webpage or application.
WordPress forgotten password localhost hack
Forgotten the password to your local CMS? Can't email a password reset? Here's my tried-and-tested solution.
Your codez is overkill
We all love writing code - that's why we're doing this - but sometimes we can seriously over-engineer things.
I am a lazy developer — How to write 438 lines of nginx redirects
I don't mean to imply that I cut corners and churn out shoddy code. I just hate doing repetitive tasks that bore the bejesus out of me.
You have a better laptop than your users
I have a decent laptop and I'm lucky enough to have a strong, reliable internet connection. Not everyone does.
I occasionally find myself dumping stringified JSON into a <pre/> tag in my markup. It inevitably looks horrible. Here's how to prettify your JSON.stringify() output.
Today I had to send an "ID" in the body of my POST request. It turns out that the API doesn't care what the value is - it just needs to be alphanumeric, exactly 18 characters long, and not already in the system.
Why the rush? Whether you're faking an API response, introducing deliberate cognitive drain, or simply want to slow things down this function has got you, baby!
Quick and dirty carousel
AKA Move the first item in an array to the end repeatedly
Increase WordPress maximum upload limit in Docker
"filename exceeds the maximum upload size for this site" 🙄
Quick and dirty server
Sometimes you just want to serve a static site without installing all kinds of stuff
Numberize a value
If you get a CSS value but you want to do maths with it, what do you do? Let's find out!
Inclusive Design is more important than Accessibility
We tend to think of accessibility as being something we add to websites to help the disabled. This is a mindset we need to get out of.
Using slots in React
Having multiple almost identical components is just very bad and wrong - let's fix it properly!
Pre- and Post- NPM Scripts
I'm not a fan of chaining together lots of commands and, it turns out, neither are NPM!
Alternatives to master
In an effort to remove unnecessary references to slavery and replace them with more inclusive terms, many companies are opting to replace the term `master` as their main git branch name.
The semantics of interaction vs navigation
It is commonplace for designers to style both links and buttons to look like “buttons”. But just because something looks like a button, doesn’t mean it is a <button>.
Crafting the ideal line-length
How to achieve the ideal line length using css.
Each child in a list should have a unique "key" prop
Fix this common React error without dependencies
For modern development, “Desktop” and “Mobile” are not enough
Different devices have different capabilities, using mobile to describe both narrow screens and touch screens is confusing and leads to assumptions that come back to bite us.
Gutenberg Components - "I only need one"
Gutenberg comes with an awful lot of default components most of which will never be used in our websites. Here's how to disable the ones you won't use.
This is Betty.
The Applesphere is the actual worst for experience designers
The "Cinematic Experience" is a myth.
McDonald’s Sauce Dispenser is the greatest product ever
OK, that’s a bold statement! I guess I should elaborate. Like a lot of teenagers, I worked in a Maccies one summer and I was struck by how awesome the sauce dispenser was. Basically, it’s a funnel attached to a handle with a trigger. Pulling the trigger releases 5 dots of ketchup in a quincunx
“Stop Being a Douchebag”: Ego and the development crew
At the end of my third year of high school, the lockers were cleared out and any unclaimed stuff was up for grabs. I inherited a copy of Use Your Illusion II on vinyl – only one of the two LPs (I still have it today) and I bloody loved it. I was 13 years
5 Reasons People Read Articles with Numbers in the Title
Using numbers in the title of a blog post is an excellent way of giving the (potential) reader an estimate of article length. 6 reasons… will take less time to read than 22 reasons… The nerds behind blogging platform Medium determined that the ideal blog post length is 7 minutes.
Why is a soap bubble round? Or: When and where to use square bubbles
The laws of physics, those undeniable laws of the universe that we can’t help but abide by, make round soap bubbles. They make green grass and wet water and rainbows that can only be seen between 40 and 42 degrees. These are templates crafted over millennia that just simply work. Flippantly, websites are the same.
Micro-interactions to delight and annoy
Can your UI harm your UX? Let’s find out…
The Build Triangle: Understanding Limitations
In an ideal world, everything we build would be perfect – gorgeous code, on time, and under budget but most of us don’t live in a Disney utopia. Unfortunately, the real world chips away at our resolve and something has to give. Part of good stakeholder management is managing expectations and part of managing expectations
Can’t see the wood for the trees
Long, long ago in a galaxy far, far away, websites ran the gamut from the bland to the Flash™-y and everyone wanted to make them better. Way back in them olden days, there were so many ways to improve the hideousness that some websites were, and so the web design industry flourished. Everyone clamoured for
MNMLSM: Simplify, simplify some more, then start simplifying
Minimalism is an interesting thing – far from meaning as stark as possible, minimalism is the idea of removing anything unnecessary for base level functionality. Imagine a human face. Now remove all of the details you can until it still resembles a human face. If, for example, you took the eyes out and it looks
Backdoor Action: The Death of the Homepage?
Google (other search engines are available) loves content. There’s a whole industry (or at least a facet of digital marketing) that has sprung up around Content Marketing that puts emphasis on copy-rich pages to draw consumers in. Content marketing is a strategic marketing approach focused on creating and distributing valuable, relevant, and consistent content to
The more you are of the moment, the quicker you are of the past
Everyone who ever got that haircut in high school just wanted to be cool. Look back at photos of some of the decisions you made in the name of “fashion” and you’ll understand the title of this article. We’re talking about the downside of cutting-edge technology. Bleeding-edge tech is cool! As a self-confessed tech nerd,
Design Fatigue: When bored doesn’t mean boring
Jakob’s Law states that visitors to your website spend most of their online time on other peoples websites. Who spends the most time on your website? – you do. Whether you’re the developer, designer, or MD, no-one spends as much time on your site as you think they do (or wish they would). This leads
Mobile-first is the future of web design
One of the main issues I have come across in the last three years of building marketing emails is that mobile responsive versions of emails are treated as an after-thought. Often a highly talented designer draws up a beautiful desktop version and then it is left to the interactive developer to whittle away at the