What did I break? Well that's easy, everything dynamic! Recently the backend service that I use (in this case StrapiJS) recently had a pretty decent update to the provider that I use for image hosting, Cloudinary. What they did was move the `public_id` field that I've been using for each image to a metadata field so that they can have provider-independent configurations and storage methods. Which I love the idea of, makes sense from their standpoint.
Read more >From My Desk
Today I want to discuss something important to most websites, analytics, and why I chose not to go with offerings from Google.
Read more >
So I thought a good place to begin my new blog was on a topic that is pretty important to this website and its functions, the tech stack used, both hardware and software and services used.
Read more >Welcome to the first blog post on my new website! Why the title though? Well because simply it is humble beginnings. This is now the third or fourth iteration of my website, none of which I have ever been happy with but today, today I feel like I'm going in a great direction. For once I feel a great sense of accomplishment, pride, and overall enthusiasm about my new brand and look. But wait you might ask! Didn't the old website look exactly like this?
Read more >So let me start with a pre-face on why this came up and how I worked it through till I finally came up with the rather hacky solution that works! One of the goals with my new website was to build a dedicated models page. A space where I can show off the work I've put into building models over the last few years, but also make it easy enough for visitors to my site to be able to navigate and sort and search for what they want to see rather easily. Basic things that all kits have in common are the grand, the scale, if they are completed or not (some are still in progress), and tags that i've added. As time has gone on many new ones have been built and I needed a way for users to narrow down their search results as well, say you want a specific brand in a specific scale that isn't done. My first pass through was to just add dropdown boxes with all the options possible (populated from GraphQL queries) and just push the new URL with that one variable changed. It worked but you could only select one thing, not more, that presents a problem with trying to sort down to specific subset. From there I began researching the best method to handle this mult-sort. I knew I wanted to build a function that could be re-used wherever routing was in place on the page so that everything could take advantage of it, but the implementation details I wasn't sure on.
Read more >The last couple of days I was doing some profiling of pages on my website, seeing where and how I could optimize and cut down on bundles to improve the user experience and noticed something that when I started thinking about it made no sense.
Read more >About a month ago I was notified by Linode that my server had been compromised and was initiating a DDoS attack out to the internet. Of course they don't take things like that lightly so the server was suspended, and after many hours of diagnosing and trying to find the cause, I found nothing :sad_face:.
Read more >Today I thought I'd do a quick little post on using absolute imports with Next.JS as recently I was getting tired of the way I was including files. What am I talking about? The way I had it in code previously was:
Read more >I'm guilty. Last week I was working on my website on my laptop and testing as I went, but I was only running in dev mode, and it bit me in the butt. I had finished up a major refactor of my react-query hooks and types and all looked good, so I git pushed my code, and on my production server pulled, built, and restarted my app. And then I found out it didn't work! Very quickly my website crashed because I didn't account for something in my code that would affect the production build on my website and because my laptop also stopped working had no live website for days!
Read more >