Dennis Morello

@morello.dev

Frontend Engineer. I build things for the web. Built defrag98.com. Building more. Mostly frontend, UX, shipping & weird ideas.

react-awesome-reveal is becoming awesome-reveal. Sneak preview, built on the next branch. A reveal is now one component with a good default, and no Emotion to install. It is 1kB gzipped and has no dependencies. It also ships for Vue, Astro and plain JS (more frameworks to come).

Code diff in a dark editor. Removed lines: import { Fade } from "react-awesome-reveal", and a Fade element with direction="up" and triggerOnce around an h2 that reads "I appear as I enter the viewport". Added lines: import { Reveal } from "@awesome-reveal/react", and the same h2 inside a plain Reveal element with no props.

Hey maintainers, @pnpm.io 12.11 links the agent skills your package ships into .claude/skills or .cursor/skills once approved. Bootstrap has lovely skills in skills/<name>/SKILL.md, so I sent a PR to include them in its npm package. Maybe check yours too:

Add agent skills to the npm package by morellodev · Pull Request #43009 · twbs/bootstrap

Description Add skills/ to the files array in package.json. On the AI docs page, add the pnpm steps that install and approve the skills. Motivation &amp; Context From version 12.11, pnpm makes...

github.com

Remember watching this little Windows flag spin while a web page took forever to load? I brought Internet Explorer 5.0's animation back with the browser's own frames, at its original speed. Getting a 22-pixel logo right sent me into a Windows 98 DLL.

Defrag98 now runs ScanDisk after a blue screen, like Windows 98 did after a bad shutdown. It checks drive C in text mode for about 8 seconds, then the boot splash shows and you're back. Exit skips it.

Bild

Defrag98 now has a screensaver mode. Once it's on in Settings, Start takes the page full screen and keeps the screen awake until the defrag finishes.

Looking to connect with more builders who genuinely care about quality, thoughtful UX, and the little details that make a product feel great. If that’s your thing too, say hi 👋

Defrag98 has a new Realistic mode. It brings back the actual Windows 98 behaviour: the defrag restarts itself if anything touches the drive mid-run (antivirus, a screensaver), didn't matter.

htmx 4 is out. Every request now runs on fetch(), attribute inheritance is opt-in, and the back button hits your server instead of a cached snapshot. A major that breaks things on purpose. What changed and how to migrate: #htmx #webdev #javascrip

htmx 4: What's New, What Breaks, Why It's Not latest

htmx 4.0 is out: fetch() internals, explicit inheritance, no more history cache. What breaks, how to migrate, and why 2.x stays latest on npm until early 2027.

morello.dev

Tailwind v4 runs on native cascade layers, custom properties, and color-mix(), with Lightning CSS doing the build. On a solo content site that's an engine generating CSS my browsers already speak, so I pulled it and wrote every style by hand: #css #webdev #astro

Why I Replaced Tailwind CSS With Vanilla CSS

I pulled Tailwind CSS out of my Astro site and rewrote it in vanilla CSS. Here's why modern CSS made the framework optional in 2026, and how I did it.

morello.dev