1. 2023

    1. Next.js error about native node modules using bindings

      Struggling to use a native node module with bindings in your Next.js app? I dive into a weird Webpack/Terser issue and a clever Next.js-specific solution to get it working smoothly.

      383 words, less than a minute read
    2. Getting theme colors in JavaScript using React with DaisyUI and TailwindCSS

      This post shows you how to use JavaScript to read CSS variables and create dynamic UIs, using SWR for seamless light & dark mode switching!

      636 words, 2 min read
    3. CSS only placeholder for contenteditable elements

      Here is how to make a text area that resizes automatically and has placeholder text, with no JavaScript with this clever CSS trick!

      435 words, less than a minute read
    4. Fully Headless Setup for Raspberry Pi

      Don't feel like hooking up a monitor and keyboard to your Raspberry Pi? I'll show you how to set up your Raspberry Pi for headless SSH access using just a few commands.

      296 words, less than a minute read
    5. Self Hosted Backups with Minio, Kopia, and Tailscale

      Ditch complex SSH setups and leverage Minio's S3 compatibility with Tailscale for secure, encrypted backups.

      901 words, 3 min read
    6. Setting up my blog as an Onion service (Tor hidden service)

      See how you can use Tor and Docker to create your own hidden onion service, perfect for tech enthusiasts and privacy advocates.

      861 words, 3 min read
    7. Making the Slow Explicit: Dynamodb vs SQL

      Bad SQL habits are to blame for slow databases, not NoSQL magic. Here's my thoughts on how DynamoDB forces better code for scalability.

      963 words, 3 min read
    8. Enforcing a "Do Not Merge" label with Github Actions

      Stop accidental code deployments with a clever GitHub Actions trick using labels to prevent merging pull requests until they're truly ready.

      946 words, 3 min read
    9. Why I use Dev containers for most of my projects

      Let's explore how to use DevContainers to create a one-click development environment with all the tools and services you need.

      951 words, 3 min read
    10. Get inferred type for a generic parameter in TypeScript

      Dive into using TypeScript to extract inferred types, inspired by Zod's schema inference magic.

      458 words, 2 min read