RSSAmplifier
"},{"@type":"BlogPosting","headline":"Minimizing friction to posting","url":"https://kevinkipp.com/blog/minimizing-friction-to-posting/?utm_source=rss&utm_medium=feed/","datePublished":"2023-12-15T02:01:02.000Z","abstract":"How I finally started posting to my blog more regularly"},{"@type":"BlogPosting","headline":"TIL there's more than one viewport","url":"https://kevinkipp.com/blog/til-theres-more-than-one-viewport/?utm_source=rss&utm_medium=feed/","datePublished":"2023-12-10T04:09:53.000Z","abstract":"I came across this article by Ryan Davis that explained how to position elements in a mobile browser when it is either zoomed in or has the virtual keyboard open. Turns out there's another viewport inside the main viewport — window.visualViewport is the API to use! From the article: // events window.visualViewport.addEventListener(\"resize\", listener);…"},{"@type":"BlogPosting","headline":"Loading fonts via web component","url":"https://kevinkipp.com/blog/loading-fonts-via-web-component/?utm_source=rss&utm_medium=feed/","datePublished":"2023-12-09T00:20:43.000Z","abstract":"Spice up your markdown blog posts with google-font"}]}

Blog

Kevin Kipp's blog

Kevin's blog — not his first, probably not his last.

kevinkipp.comRSS feed ↗31 posts

Latest posts

QR Codes for calling and texting

I'm obsessed with QR codes. I don't know why I'm like this. I just love the fact that they can be printed on paper to encode information in a way that doesn't require any power and can be read by any phone. I was talking to a co-worker today about them, and had the idea of using a tel: link in a QR code for someone to be able to call you, and it turns out that works! <script type="module"…

Monday is the correct first day of the week

How did we decide otherwise?

The Quest for the Perfect Water Bottle

How many features could there possibly be for a water bottle?

Figure out the blog website later

The most pragmatic way to start a blog I've ever seen

A QR Code for the current page

Extending Shoelace's QR Code component to show a QR Code for the current URL.

On-the-fly Open Graph images

A high-level look at creating Open Graph images on-the-fly using Cloudflare Browser Rendering and R2.

Going full-stack on Astro with Cloudflare D1 and Drizzle

A step-by-step guide to adding a back-end to your Astro project using Cloudflare D1 and Drizzle ORM

/shared links

A new page & RSS feed where I'll be sharing interesting links

Sharing my RSS subscriptions on /follows

I recently gave a talk at the Austin JavaScript Meetup and a good chunk of the talk was about the Feedbin Extension for Raycast I built using Feedbin's API . After someone asked about the feeds I subscribe to, I thought I could easily build a page for it pulling the data from the API. So here it is — my /follows page!

Strategies for staring at my phone less

There's been a lot of well deserved criticism going around lately of algorithm driven endless feeds of content, and my co-worker Ryan Schachte's "Simplifying my life with more devices" blog post had me seriously considering getting a Light Phone . I almost did it. But… I just don't think I can give up the amount of functionality available in a modern smart phone. Instead, I resolved to reduce my…

My /wish list

A curated wishlist of gifts for Kevin

Paper Owl (VS Code theme)

An adaptation of Sarah Drasner's Night Owl theme based on Steph Ango's Flexoki color scheme

Out of Order Streaming using Declarative Shadow DOM

A new technique that requires no JavaScript

TIL form elements have a formdata event

If you're using FormData from a form, you can stop listening for submit events!

Automatic og:image files for blog posts

How to generate images for an Astro blog using Puppeteer

A quick way to visit a random page on MDN

Maybe in the vein of Chris Coyier's post on A /random Route on a WordPress Site , I found myself kinda interested in being able to just go to a random page on MDN. I didn't find an obvious existing feature for this, so I hacked one together. It's pretty simple — it fetches MDN's sitemap, parses the XML, and grabs a random URL then redirects to it. https://mdn-random.kkipp.workers.dev I love…

Snow! ☃️

More visual web component fun — this <snow-fall> web component from Zach Leatherman (originally from alphardex ) is so festive and easy. I had to add it for a few months. <snow-fall></snow-fall> <script src="https://unpkg.com/@zachleat/snow-fall@1.0.1/snow-fall.js"></script>

Minimizing friction to posting

How I finally started posting to my blog more regularly

TIL there's more than one viewport

I came across this article by Ryan Davis that explained how to position elements in a mobile browser when it is either zoomed in or has the virtual keyboard open. Turns out there's another viewport inside the main viewport — window.visualViewport is the API to use! From the article: // events window.visualViewport.addEventListener("resize", listener);…

Loading fonts via web component

Spice up your markdown blog posts with google-font

TIL box-decoration-break

The box-decoration-break CSS property specifies how an element's fragments should be rendered when broken across multiple lines, columns, or pages. — MDN See the Pen{" "} box-decoration-break {" "} by Kevin Kipp ( @third774 ) on{" "} CodePen .

Web Components are sparkles for your HTML

No, I mean like... literally

TIL Object Position

A while ago (I guess 6 years now?) I adapted a jQuery plugin called FocusPoint to be dependency free . Today I was messing around trying to maybe adapt this to be a web component, and learned that object-position already does exactly this, and has really great browser support . See the Pen{" "} Object Position by Kevin Kipp ( @third774 ) on{" "} CodePen . So, I guess it's time to archive that…

Easier to reach arrow keys

Wouldn't it be nice to not have to move your entire hand to reach the arrow keys?

TIL Media Queries should use em units

Came across Zell's blog post and it looks like em units are the way to go for breakpoints that: are consistent across browsers respect user setting their default font size respect user zoom

Your URL is a defacto API

The importance of carefully considering your URL structure

QR code doorbells

How to hack together a QR code doorbell with Discord, Remix, and Cloudflare Workers

Meh and Hyper for normal keyboards

Using Meh and Hyper modifiers on a normal keyboard is difficult, but it doesn't have to be.

The Transform Sled 🛷

Sometimes you just want to translate an element by a percentage of its parent's width.

What does Redux model?

In the previous post, we talked about the type signature for reduce and how it essentially iterates over a list and combines all of the elements together using a reducer function. You may have heard reducer before within the context of Redux, but how do the two concepts relate? Let's start with a very basic reducer type State = number; const DEFAULT_STATE: State = 0; type IncrementAction = { type:…

Understanding Reduce Through Types

I feel like I didn't fully understand Array.prototype.reduce until I started getting into functional programming and learning about types and function type signatures. Once I understood the types, I feel like it unlocked a powerful tool that I naturally reach for any time I need to turn an array of things into something of a different type. Starting with map 's type signature Before we dig into…