Dennis Morello

Dennis Morello

@morello.dev

Frontend Engineer. I build things for the web. Built https://awesome-reveal.dev and https://defrag98.com. Building more. Mostly frontend, UX, shipping & weird ideas.

164 followers351 following143 posts

Awesome Reveal is the successor of React Awesome Reveal, and a lot changed since v4: - Emotion is gone, and the animations run on the Web Animations API - React is one of several integrations, with Vue and Astro, and more are coming - The core is under 2 kB gzipped and has no dependencies

Dennis Morello@morello.dev

Awesome Reveal 1.0 RC is now available on npm 🎉 Scroll reveal animations for React, Vue, Astro and plain JavaScript, rebuilt on IntersectionObserver and the Web Animations API. The API is frozen, so now is the time to try it and report bugs. awesome-reveal.dev

Awesome Reveal 1.0 RC is now available on npm 🎉 Scroll reveal animations for React, Vue, Astro and plain JavaScript, rebuilt on IntersectionObserver and the Web Animations API. The API is frozen, so now is the time to try it and report bugs. awesome-reveal.dev

What's new in 1.0: - Core under 2 kB gzipped, zero dependencies - No flash with SSR, Next.js Server Components included - Respects reduced motion - Works with a strict CSP - Custom start states or your own keyframes On v4? react-awesome-reveal 5.0 RC re-exports the new API.

AI coding agent skills are coming to Awesome Reveal. Your coding agent will have the context it needs to understand the API, follow best practices and generate idiomatic code. Less guesswork, better results. Out of the box.

Dennis Morello@morello.dev

A sneak peek at the new Awesome Reveal. Tiny, framework-agnostic core. React, Vue and Astro at launch. More to come. Vanilla JS out of the box. Zero dependencies. Small bundles. Composable API. Less magic, more platform. Still plug and play.

A sneak peek at the new Awesome Reveal. Tiny, framework-agnostic core. React, Vue and Astro at launch. More to come. Vanilla JS out of the box. Zero dependencies. Small bundles. Composable API. Less magic, more platform. Still plug and play.

Dennis Morello@morello.dev

I’d love your feedback before the next Awesome Reveal release. There are new libraries for React, Vue, Astro and plain JS. Try the preview in a project, or migrate from React Awesome Reveal v4. What feels clear? Where do you get stuck?

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).

A different animation is a function call. slide, scale, blur and pop take options, and you can write your own keyframes. It runs on the Web Animations API, so the animation does not depend on a CSS-in-JS runtime. Docs and install: awesome-reveal.morello.dev

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:

github.comAdd agent skills to the npm package by morellodev · Pull Request #43009 · twbs/bootstrapDescription 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...

arbor 🌳, my CLI for git worktrees, has a new intro video and some new tricks: • fuzzy picker for switch and rm • hooks that set up new worktrees • arbor clean for unused worktrees Try it and tell me what's broken or missing: github.com/morellodev/arbor

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.

View full thread

The animation lives in IE5.0's BROWSEUI.DLL, resource 306: one bitmap strip with 41 frames stacked on top of each other, each 22 pixels tall. I extracted it untouched. Even the glow around the resting flag is baked into the bitmap.

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.

The animation lives in IE5.0's BROWSEUI.DLL, resource 306: one bitmap strip with 41 frames stacked on top of each other, each 22 pixels tall. I extracted it untouched. Even the glow around the resting flag is baked into the bitmap.

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.

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.

It’s incredible how a little project I made for fun over a rainy weekend became so popular. Defrag98 is getting so much love! ❤️

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

morello.devhtmx 4: What's New, What Breaks, Why It's Not latesthtmx 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.

The change I would have asked for: attributes like hx-confirm no longer silently inherit down the DOM. You add :inherited where you actually want it. Debugging no longer means walking up the tree in your head.

I called @bun.sh the Zig holdout two weeks ago. That line was already stale when it went up. Sumner ported 535k lines of Zig to Rust in 11 days with 64 Claude agents, and Bun 1.4 is in canary. I went back to read what's actually real: #rust #javascript #webdev

morello.devmorello.dev

Loading React from a public CDN used to mean a visitor probably already had it from another site. Browsers killed that in 2020 to stop cache-timing tracking, so every site now downloads its own copy. The Cross-Origin Storage API keys files by hash to bring sharing back: #webdev #javascript

morello.devCross-Origin Storage API: Stop Downloading Files TwiceThe Cross-Origin Storage API lets sites share one cached copy of a file (a JS library, font, or AI model) across origins by SHA-256 hash. Here's how it works.

The privacy design is the clever part. To stop 'do you have file X?' from becoming a tracking probe, the browser will report a rare file as absent even when it has it, and only confirms files popular enough across enough origins to stay anonymous.