Space Background with Logo in Front

Hi, I'm Jelani Harris

I'm a Senior Full Stack Software Engineer

Technologies

I've worked with a ton of technologies in my career and personal projects. I really enjoy learning new stuff and I tend to post about what I learn here.

Front-End

HTML 5
CSS 3
SASS
Tailwind CSS
Material UI
Javascript
TypeScript
ReactJS
Redux

Back-End

NodeJs
NextJS
PHP
Ruby On Rails
Python
Laravel
MySQL
PostgreSQL
GraphQL
Redis
Apache

Infrastructure

Amazon Web Services
Heroku
Digital Ocean

Tools

VS Code
Photoshop
Bootstrap
GitHub
GitLab
Docker
Webpack

Recent Activity

Blog
Setting a variable value as an object key in Javascript

You sometimes may find yourself needing to assign an attribute to an object based off the value of another variable. I show you the easiest way.

Blog
SEO with Gatsby and React-Helmet

React-Helmet is a way of managing all of the changes that are made to the head of an HTML document. With this component you can control the…

Blog
Adding drafts to your blog posts in Gatsby

In this article I will teach you how to add a draft system to your Gatsby site so that you can prevent incomplete or unpublished posts from being visible to the public.

Blog
BooleanInput not saving in React-Admin

So I was having an issue in react-admin where the value of BooleanInput (e.g. a checkbox slider) was not saving to my backend. Specifically…

Blog
How to extend types in Typescript

When working with TypeScript, you’ll frequently encounter scenarios where you need to merge or enhance existing types to craft a new…

Blog
How to install Paperclip in Rails 3

Paperclip is a plugin/gem created by the talented folks at ThoughtBot. It will make using attachments and uploads in your rails application…

Blog

One of the only Google app (apart from Gmail) that I use the most Google Notebook will have no more updates. Before I signed up to Google I…

Blog
Building a GraphQL API with NestJS and Prisma

In this tutorial I will show you how to create a GraphQL API using Nest.JS with a Prisma.IO database. In my recent project at work we are…

Blog
Fixing ECONNREFUSED error in Rails and NextJS Docker Containers

I’m in the early stages of creating my application that uses NextJs as a frontend and Rails as the Api backend, when I realized that I…

Blog
Fixing multiple renders with NextJs and tRPC

A post about how to fix multiple rendering issues when using NextJS and tRPC

Blog
Fixing Netlify form problems in Gatsby

After having a ton of issues getting Netlify’s form submission to work, I have some tips on how to get it working if you’re running into any…

Blog
Fixing Foundation 5’s Unrecognized Expression Syntax Error

I was working on a new marketplace theme in Magento, and I kept getting a peculiar javascript error message. The exact error message that…

Blog
Using Jquery to disable the enter key

There are times that you do not want a form to automatically submit when a user hits the enter key. Or if you want to do some validation via…

Blog
Remove Anchors from a Url in Javascript

Here is something useful that I discovered in my programming for my personal websites. I needed to strip out the anchor portion of a link…

Blog
Fixing ERR_INVALID_THIS error on Vercel using PNPM

Fixing ERR_INVALID_THIS error on Vercel using PNPM I was in the beginning stages of creating my application using T3 and Clerk when I ran…

Blog
How to install packages from GitHub using NPM

Using the npm registry is not the only source that we can use to install packages into our applications. NPM also has the ability to install…

Blog
How to add redirects to a Netlify site in Gatsby

Previous this website was built in Wordpress, but now I’ve built it using Gatsby. In my migration to Gatsby I felt like I needed to change…

Blog
Sticky Sidebar in React

How to do it Now you could use something like react-sticky to do something like this, but it’s so much easier to just define your sidebar…

Blog
How to check if a jquery plugin is installed or available

Most Jquery plugins act a lot like functions. They are attached to the main Jquery object, so essentially all we have to do is check that…

Blog
Installing Ruby on Rails 3 in Windows

So last week I got a little tired of having to reboot my computer to dual-boot in a linux environment so that I could work on Rails stuff…

Blog
Removing empty elements from an array

When dealing with tag inputs from users, I find myself having to make sure they they don’t enter in any blank or empty tags. Then I realized…

Blog

Recently I was working on a few functions that I didn’t want to have activated immediately after hovered over a div. I neededthe functions…

Blog
Solving the Module Not Found error when using NextJS and MonoRepos

I’m using the T3 stack to begin work on my movie application and I wanted to use ShadCN for the baseline of my components. I had another…

Blog
Fixing the MDB_PROBLEM: Unexpected problem - txn should abort in Gatsby

While I was preparing to work locally on my website, I did the typical and was met with this error: Error: MDB_PROBLEM: Unexpected problem…

Blog
Sorting an array of objects by a property value in javascript

Sorting using sort() Lets say that you have an array of objects that you wanted to sort by: You can use the sort() method of the Array that…

Blog
Fixing Polyglot.transformPhrase expects argument #1 to be string in react-admin

What does transformPhrase even mean? So sometimes when I’m trying to save a form in react-admin I see this really annoying error: Uncaught…

Blog
Strip Whitespace on save with Aptana

So recently I had a coworker get slightly annoyed with me and my trailing whitespaces at the end of lines. I’m using Aptana and not anything…

Blog
How to read remote files using PHP

When I was implementing pingback functionality in my custom blogging software, I needed to read files from a remote server. As long as allow…

Blog
Case-insensitive replaceAll in Java

How to use a case-insensitive replaceAll in javascript

Blog

Well, this is the start to my blog. Hopefully I’ll post here often, but hopefully with something useful each time. I just don’t want to have…