When I saw the CSS Tricks redesign, I was hooked. I loved the links with gradients. I told myself I’m going to use gradient links for my next project. That’s what I did for Learn JavaScript’s course portal. The links look like this: I want to share what ... more
2019 has ended. Once again, I want to conduct my year-end review in public. This time, in a lot more depth and rawness compared to the previous years. I’m going to split the review into four sections: Work Non-work Major learnings 2020 Work I want to ... more
You learned how to use Mongoose on a basic level to create, read, update, and delete documents in the previous tutorial. In this tutorial, we’ll go a step further into subdocuments What’s a subdocument In Mongoose, subdocuments are documents that are ... more
Mongoose is a library that makes MongoDB easier to use. It does two things: It gives structure to MongoDB Collections It gives you helpful methods to use In this article, you’ll learn how to use Mongoose on a basic level. Prerequisites I assume you have ... more
Bootcamps are fast-paced learning environments. Most people who enroll in a Bootcamp do quite well when it comes to HTML and CSS. But many people struggle with JavaScript. Some even get depressed about programming because they can’t understand JavaScript. ... more
Homebrew is a package manager for Mac OS. It lets you download binaries, packages, and applications with a single command. In this article, I want to explain how to use Homebrew. Installing Homebrew You can install Homebrew with this command: # Installs ... more
You should never expose API keys or secrets. If you expose them, you might get into trouble. Once, I almost had to pay an excessive amount because my friend leaked my Amazon API key by accident. What’s the amount? I can’t remember, but I think somewhere ... more
I had a hard time learning how to handle errors in Express when I started. Nobody seemed to have written the answers I needed, so I had to learn it the hard way. Today, I want to share everything I know about handling errors in an Express app. Let’s ... more
There are LOTS of languages. Picking one (or two, or three! 😱) can be scary and overwhelming at first. In this article, I want to share three things: What to consider when picking languages What NOT to worry about when you pick languages Recommendations ... more
In this article, I want to explain the difference between HTML, CSS, and JavaScript with an analogy. I hope it helps you understand what these languages are, and what they do. Let’s start with HTML. HTML HTML stands for Hypertext Markup Language . It ... more
I’ve been styling :hover , :focus , and :active states the same way for years. I can’t remember when I started styling this way. Here’s the code I always use: // Not the best approach. I'll explain why in this article .selector { &:hover, &:focus, ... more
As I created applications with Express and Node, I learned about three useful middlewares: Morgan Camelcase Remove empty properties Of these three, Morgan is an actual middleware. You can download Morgan from npm directly. The other two are middlewares ... more
I noticed browsers were inconsistent in how they handle a click on <button> . Some browsers choose to focus on the button. Some browsers don’t. In this article, I want to show you my test and findings. Then, I want to talk about a way to overcome ... more
When you write tests for the backend, you need to test for four different kinds of operations: Create (for adding things to the database) Read (for getting things from the database) Update (for changing the database) Delete (for deleting things from ... more
I played around with testing lately. One thing I tried to do was to test the endpoints of my Express application. Setting up the test was the hard part. People who write about tests don’t actually teach you how they set it up. I could not find any useful ... more
I always use MongoDB as a database when I work on an app. And I like to connect to a database on my computer because it speeds up dev and test-related work. Today, I want to share how to create and connect to a local MongoDB Database. Installing MongoDB ... more
I used to think it would be easy to write backend if I knew JavaScript. I thought it would be easy because Node is JavaScript. I didn’t have to learn a new language. But I was wrong. But backend was hard to learn. I took ages to learn it. (And I’m still ... more
Building a calendar with CSS Grid is actually quite easy. I want to show you how to do it. Here’s what you’ll create by the end of this article: Creating the HTML You can tell from the image that the calendar contains three parts: The month indicator ... more
(Hey, we're having problems showing images in RSS right now, so if you want a better reading experience, consider viewing this article online [here](https://zellwk.com//blog/everything-you-need-to-know-about-date-in-javascript. We hope to fix this soon!). ... more
Date is weird in JavaScript. It gets on our nerves so much that we reach for libraries (like Date-fns and Moment) the moment (ha!) we need to work with date and time. But we don’t always need to use libraries. Date can actually be quite simple if you ... more
I use Visual Studio Code as my text editor. When I write JavaScript, I follow JavaScript Standard Style. There’s an easy way to integrate Standard in VS Code—with the vscode-standardjs plugin. I made a video for this some time ago if you’re interested ... more
“Do you have any advice on finding a job as a developer?” Many people have asked me that question, but I can’t give a proper answer because I have never been hired as a developer before. What I did was: Wriggled my way into a Wordpress dev role in an ... more
We’re fierce and protective when we talk about stuff we care about. And as developers, we care a lot about these topics: Accessibility Web Performance CSS JavaScript Frameworks Inclusivity and Equality There are no problems with voicing your opinion. ... more
We developers have become quite a toxic bunch of people to be with. We create fierce “debates” on every media we’re in. Twitter, Facebook, wherever we’re at. We talk about how CSS suck (and how they don’t). We talk about Accessibility and Performance ... more
JavaScript is a strange language. Once in a while, you have to deal with a callback that’s in another callback that’s in yet another callback. People affectionately call this pattern the callback hell . It kinda looks like this: firstFunction(args, function() ... more
Basic async and await is simple. Things get a bit more complicated when you try to use await in loops. In this article, I want to share some gotchas to watch out for if you intend to use await in loops. Before you begin I’m going to assume you know how ... more
(Hey, we're having problems showing images in RSS right now, so if you want a better reading experience, consider viewing this article online [here](https://zellwk.com//blog/hide-content-accessibly. We hope to fix this soon!). When I want to hide content ... more
Asynchronous JavaScript has never been easy. For a while, we used callbacks. Then, we used promises. And now, we have asynchronous functions. Asynchronous functions make it easier to write asynchronous JavaScript, but it comes with its own set of gotchas ... more
When you create a package for others to use, you have to consider where your user will use your package. Will they use it in a browser-based environment (or frontend JavaScript)? Will they use it in Node (or backend JavaScript)? Or both? If you want ... more
You can decide what files people get when they download your package in three ways: With the .gitignore file With the .npmignore file With the files property We’ll look at each method and discuss which methods you should (or shouldn’t) be using. Excluding ... more