TIL: inline event handlers still fire when passed to React's dangerouslySetInnerHTML Even though it won't run <script> tags, React's dangerouslySetInnerHTML still allows inline event handlers to execute. Here's how you might neutralize that threat.
scrap Unseen footprints Sometimes I feel like I’ve been holding my breath for a long time and I'm not sure there will be any air to breathe when I finally let go. It’d be nice to know what God is doing in those moments rather than being left there
Streaming Text Like an LLM with TypeIt (and React) We're getting real familiar with seeing LLMs stream chunks of text to a page. Here's a simple demonstration of how you'd mimic the effect with TypeIt.
scrap Control It is pathetic how often I overestimate the control I have over my circumstances, and how protective I am of the little I do have. A couple passages have been stirring this up. First, from Exodus. The Israelites have fled into the wilderness after escaping Egypt. They set up camp
I didn't know you could use sibling parameters as default values in functions. Default parameter values have been in JavaScript for a while. But I just found out you can use sibling parameters as the default values themselves.
scrap Discipline I wish it were easier to tell the difference between God’s discipline that I should rejoice in, and misfortune that I should lament. But I guess that’s a false dichotomy. There’s no reason to believe they can’t be one in the same, especially if I take
Empty Building I’ve started to notice my stomach bunch up when I come across #BuildInPublic hashtags, or see people throw around phrases like: * “Forget everything else. Just get out there and build.” * “It’s all about building cool stuff together.” * “The future belongs to the builders.” * “Stop talking. Start building.” * “So
scrap Foolish prayer There is no earthly indication that some of my prayers will be answered. It’s something I’ve had to face eye-to-eye in recent weeks, and I can sense a waning hope in people who’ve been praying with me too. It makes me realize how dependent I’ve been
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.