
JavaScript Promises evaluate eagerly, but sometimes that's a problem. This post covers why and how to create custom lazy-evaluating promises.

Learn how to build backend APIs that support progressive enhancement by detecting if a request was submitted with HTML forms or JavaScript.

Learn how the CSS :has() pseudo-class can improve HTML forms through validation hints, conditional content, fancier designs, and more.

When choosing between pixels and rems in CSS, you should almost always use rems. It's a simple rule to follow. This article explains why.

This is an introduction to Coolify, a project that can deploy custom applications based on Git events. It's similar to a self-hosted Netlify or Heroku.

Learn how to make HTML images better for users with responsive sizes and modern formats without making your life as a developer much harder.

You may be familiar with using devtools to modify a website's HTML. In this blog post, I'll show you two more ways: contenteditable and designMode.

My tip for personal blogs is to avoid technical distractions. This article shows how to do so by setting up WordPress on Linode with just a few clicks.

VS Code Timeline can take snapshots of different save points of a file. This can help you save lost work that Git may not be able to.

This post highlights an interesting use-case for using edge compute to solve an obscure performance bug with Apache's GZip module.