scrap Whirlwind I’ve either never seen this verse or I’m reading it with different eyes: “Though he slay me, I will hope in him; yet I will argue my ways to his face.” - Job 13:15 ESV What a weird combination of statements. Though he slay me, I will
scrap Being Still I have not been reading Psalm 46:10 correctly for a long time (probably because I’ve always read it in isolation). “Be still, and know that I am God.” I’ve always taken “stillness” to strictly be a synonym for “peace.” God’s just telling us to find inner
scrap Persuading God I know God does not change; that His word and being are eternally immutable. That’s why I’m struck by stories in which He appears to change His mind, as if He can sometimes be persuaded to alter plans He’s been very clear about. It happens in the
scrap Persistence Stories like the persistent friend in Luke 11 are easy to admire when things are going well. A man urgently goes to his friend in the middle of the night to ask for some bread. After some determination, all’s well: I tell you, even though he will not get
remote:jamcomments JamComments Now Offers AI-Powered Moderation You can now use an LLM to moderate new comments submitted through JamComments. Here's the why and how.
scrap Hope & Weakness I think I’ve had a messed up, self-sufficient view of “hope” for a long time, and I didn’t start to realize it until I read Romans 8:24 while life was falling apart. For in this hope we were saved. Now hope that is seen is not hope.
remote:picperf It Might Be Worth Converting that GIF to an Animated WebP Despite it's key role in modern meme culture, it may be ready to migrate from the animated GIF to a format offering some serious technical advantages -- WebP.
external Exploring the Possibilities of Native JavaScript Decorators Native support for decorators is inevitable! It simplifies augmenting class methods, which can help with things like logging, memoization, debouncing, and dependency injection.
remote:plausible How to Back Up Self-Hosted Plausible Analytics Data to an R2 or S3 Bucket Services like S3 and R2 can be invaluable when self-hosting Plausible Analytics. Let's walk through what it looks like to use them for automated backups a simple cron job.
remote:jamcomments On Building Structured Data with Client-Side JavaScript Thinking through some of the trade-offs and benefits in using client-side JavaScript to generate structured data.
external Control JavaScript Promises from Anywhere Using Promise.withResolvers() A guest post I had the privilege of writing for the Frontend Masters blog.
Re-Enabling Emails for Ghost CMS Members After upgrading my self-hosted instance of Ghost CMS, a significant number of my members' emails were inappropriately disabled. Here's how I went about fixing it (for now).
remote:jamcomments Adding Structured Data in Astro's Starlight Documentation Framework Astro's Starlight documentation theme is great, but currently lacks support for building structured data (JSON-LD). Fortunately, it's easy enough to roll yourself by overriding a component.
remote:jamcomments It’s Probably Only Getting More Important to Use (Good) Structured Data Exploring the purpose of structured data in the SEO game, why it's poised to become even more important in the future, and how to start leveraging it well.
Helpful Guidelines for Posting on LinkedIn I’ve been observing some of the posting trends on here and it’s clear we could benefit from a few guidelines. You might think I’m unqualified to give them. But the facts suggest otherwise: * I won $25 in cold, hard, American cash by winning second place in a
remote:picperf Looking Forward to (Hopefully) Not Needing Responsive Images One Day I’ve decided I don’t like the responsive image API in HTML, or at least the idea that we still need it as a performance tool. By "responsive," I mean "show different versions of an image based on device," using only HTML. If it’s
remote:picperf You Might Consider Using an Image Sitemap Depending on the site, image sitemaps can be a helpful tool in an SEO strategy, making it ultra-clear to search engines the images they can and should index. Let's explore setting one up.
The Architecture Might Not Be the Problem It’s interesting how language around service architecture changes as patterns fall in & out of favor. People who advocated for microservices years ago now refer to them as “nano” services. It seems to get at the costly hassle it can be to integrate with, iterate on, and maintain a
remote:picperf Transform Image URLs with a Simple Cloudflare Worker Cloudflare Workers make it easy to quickly transform HTML on the fly with no third-party dependencies. Let's show how smooth the process is by building one to prepare every image URL for use with PicPerf.io.
Hold a Healthy Sense of Caution Whenever Running a curl|bash Command Piping a curl response to bash is flexible, power distribution tactic used by software authors. But using it well means never losing sight of the inherent risks that come along with it.
remote:picperf It's Never Been Easier to Performantly Put Images on the Web The web has made many significant, meaningful advancements in performantly loading and rendering images over the years. Let's reminisce about a few.
remote:plausible Why Am I Getting a 502 Bad Gateway After Turning on Plausible? If you've ever gotten a "bad gateway" error from your self-hosted instance of Plausible Analytics, there are a couple of things you might try first.
remote:plausible How to Back Up Your Self-Hosted Plausible Analytics Data Backing up your data is critical for effectively any self-hosted application. Let's explore how you can make it happen for Plausible Analytics.
Picking the Right Tool for Maneuvering JavaScript's Event Loop Depending on the task, it's helpful to be able to schedule work throughout various parts of the event loop's lifecycle. Let's explore some of the tools available for doing it.
remote:plausible Raise the API Rate Limit for a Self-Hosted Instance of Plausible If you're running Plausible Analytics on a virtual machine (or some other box), you don't need to abide by the default API key rate limit it enforces. Let's walk through how to raise it.