If you didn't see yesterday, I'm partnering with @aarondfrancis and @steve_tenuto to produce an in-depth video course on building with Rails SQLite. "High Leverage Rails" is coming in February and I couldn't be more excited!
Aaron is one of the best educators I have ever met. I am 100% certain that this will be some of the very best content out there for harnessing AI to build, fast but with quality. I'm pre-purchasing, what about you?
They say AI is the end for developers.
They say the job market is gone.
They say learning to code is pointless.
I don’t buy it.
I think we're just getting started.
CSS Anchor Positioning is now baseline.
Firefox 147 ships today with full support. Chrome, Edge, Safari — all on board. Position elements relative to other elements. No JavaScript.
Here's the 60-second rundown...
Best part: automatic fallbacks.
.popup {
position-area: block-end;
position-try: flip-block;
}
Popup below the anchor. Not enough space? Flip it above. The browser does the math. You write the rules.
Building HTML UI forced me to figure out how to write CSS classes that integrate deeply with Tailwind v4. I want 3 things: intellisense, tree shaking, and easy utility overrides. Here’s I make it all work 🧵
The ui- prefix matters too. When you see .btn you have no idea what you’re dealing with. Bootstrap? Old semantic class? Random utility? `ui-badge` signals intent: zero-specificity visual pattern designed to compose with utilities.
Tailwind v4’s @utility, @apply, and @variant aren’t just new syntax.
Combined with :where(), they let you write semantic CSS that’s discoverable, tree-shakeable, readable, and composable.
Full write-up: fractaledmind.com/2026/01/02…
As soon as I saw the Bloom component from @joshpuckett, I knew I had to build it with plain HTML and CSS. This one was tricky, I won't lie, but a lot of fun.
May just add this as an affordance to HTML UI, we shall see.
How It Works (2/3)
* Trigger: Inside the container (is this ok, I don't know, but it works 🤷🏻), fades/blurs out when :popover-open
* Content: Inside the container, fades/blurs in when :popover-open
* Height: Animates to auto using interpolate-size: allow-keywords
How It Works (3/3)
* Opening: cubic-bezier(0.34, 1.56, 0.64, 1) — 56% overshoot for energy
* Closing: cubic-bezier(0.34, 1.18, 0.64, 1) — 18% overshoot, gentler