Are your Express route params `undefined`? If you are not getting your route parameter values where you need them, this blog post should help you out of `undefined` hell with three easy fixes!
I created a custom hook to get and set query parameters in the URL query string using React Router and its location object. Here's how (and why) I built it, with all the code you need to use it.
Getting "[object Object]" is not valid JSON error in your code is annoying, but there is often a simple fix. Maybe you don't need JSON.parse(), or maybe you're giving it the wrong data. Here's an easy fix (and how to troubleshoot if you're still stuck).
If you want to join React components together with JSX or another component - for example, in a list or breadcrumb - you might get [object Object] when using Array.join(). Here's what you can do instead.
Choosing the best way to add versioning to my Node.js API became quite an adventure! In this blog post, I looked at three approaches and (finally) picked my favourite.
You can use Array.join() on an array of objects, but `join()` will only work with strings, so you need to get the property value(s) first. Let's look at some examples.
Should you organise your blog posts into categories, with each post belonging to one category - or tags, where each post can have multiple tags? I don't have the answer, but hopefully this post can help you decide the best way forward!
If you are starting a new blog, taking 5 minutes to decide on the best URL structure can help future-proof your content. Here are some good (and not-so-good) blog URL structures I've used, and why I choose super-simple.
What's the difference between `isLoading` and `isFetching` in React Query? When would you use one and not the other? Let's figure it out and show a nice loading spinner to our users.
In this blog post, we will create a function to delete a folder or directory in AWS S3. Because folders don't actually exist in S3, the function will get the objects at the prefix, and recursively delete them all.
I ran into a few issues setting up a ReactJS app on Cloudflare Pages because only part of my website was a SPA (single-page application). Here's how I fixed routing and got my SPA to work.
Have you added a custom domain to your Cloudflare Pages site, but you can still access the site on `*.pages.dev`? Here's how I used Bulk Redirects to redirect the Cloudflare Pages URL to my custom domain.
How can you schedule static site builds? Run a cron job! And in Cloudflare, you don't even need to use any outside services to do it - you can trigger a worker to run on schedule, whenever you need!
Once you add the Image extension to the Tiptap WYSIWYG editor, users can paste images in from HTML and the clipboard. That may (or may not be) what you want to happen. Here's how I handled image pasting in Tiptap.
In the blog post, we'll create a useDebounce custom hook to delay function calls with React's useCallback and a little time travelling magic. We will also cancel our debounced function when the component unmounts or dependencies change.
There are no collaboration or list-sharing features with Things 3. But it's a great personal task manager. Here's how we set up a Trello board and automations to use Things 3 with a small team.
Need to be able to drag and drop image files into your Tiptap WYSIWYG editor? Tiptap is highly customisable, so let's add some drag-and-drop magic to the Image extension.