[Series] [Build In Public] The Better Photos Project

22nd of May, 2021

Building a better, less privacy-violating, Google Photos alternative - in public. After much deliberation, I have creatively named this project 'Better Google Photos (BGP)'. This is my first experiment with building in public. In this series of articles, I will transparently catalog the entire build process, including the planning, technical, and marketing aspects of building this project.

Converting React Class Components to Function Components using Hooks

9th of March, 2019

With React Hooks now being part of the stable release, let's take a look at how to convert a class-based React component to a Function component, including state usage and life cycle methods.

Introducing Socket Wrench

4th of March, 2019

Socket Wrench is to Websockets what Postman/Insomnia is to HTTP connections (kinda).

Deconstructing the Magic Behind React Hooks

7th of February, 2019

Hooks are an interesting new feature in React, but there are a few things about hooks that make it seem like a black-box magic solution. In this article, I'll deconstruct the magic behind React hooks.

Flex-Cheat – Easy Cheat Classes for Varied CSS Layouts Using Flexboxes

29th of January, 2019

Flex-Cheat is thirty lines of CSS, exposed as six classes, which can be mixed and matched to produce pretty much any HTML element layout using the magic of flexboxes.

Organizing Your React + Redux Application's Codebase for Future Maintainability and Extensibility

11th of January, 2019

As the scope, size, and feature set of your React + Redux application grows, so does the pain of maintaining it, especially when you're working with a big team, and multiple people work on each feature in your application. In this article, we are going to be exploring how to organize your codebase, to increase maintainability and extensibility.

Beware of Chaining Javascript Array Methods

8th of January, 2019

Javascript's Array class exposes quite a few methods (filter, map, reduce), which iterate through an array and call an iterator function to perform actions on the array. Chaining these methods allows you to write clean, easy to read code. But what does this convenience cost us in terms of performance, and is it worth it?

The AbortController, and Aborting Fetch Requests in Javascript

7th of January, 2019

AbortController recently hit 75% support by browser usage (according to caniuse.com), so let's take a look at what it is and how we can use it to abort fetch requests.

[Series] Routing in React SPAs without React-Router

3rd of January, 2019

I use a homegrown router to perform routing in my React Single Page Applications, because React-Router keeps getting in my way. In this article, I'll explain how I structure my application, and how I do client-side routing.

YASS-Gen - Zero Config Static Site Generator

2nd of January, 2019

YASS-Gen - Yet Another Static Site Generator. Yass-Gen is a zero config static site generator which allows you to build static sites using Handlebars enabled templates, and Markdown files extended with YAML FrontMatter.

BlueJacket - ExpressJS Style Routing for Isomorphic Javascript Apps

27th of December, 2018

BlueJacket is a tiny (~125LOC) router, that provides simple, Express Style routing for both the server and the browser. It uses the popular middleware style of the ExpressJS router with a few tweaks for better readabilty.

Why I don't use React-Router

24th of December, 2018

React-Router is the most popular routing solution out there for React applications – so much so, that a lot of developers think of it as the 'Official Routing Solution' for React. While I'm sure React-Router works quite well for a lot of people, I've always disliked working with React-Router. I'll try to summarize my reasons in this article.

Learning Redux Without Using Redux

17th of November, 2018

If you're trying to pick a library to perform state management for your React application, chances are you're going to end up picking Redux. But Redux comes with quite a steep learning curve. Or does it? In this article, we'll learn Redux, without actually using Redux.