[Series] [Build In Public] The Better Photos Project
22nd of May, 2021Building 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, 2019With 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, 2019Socket Wrench is to Websockets what Postman/Insomnia is to HTTP connections (kinda).
Deconstructing the Magic Behind React Hooks
7th of February, 2019Hooks 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, 2019Flex-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, 2019As 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, 2019Javascript'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, 2019AbortController 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, 2019I 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, 2019YASS-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, 2018BlueJacket 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, 2018React-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, 2018If 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.