Sign in

Andy Luhrs

@aluhrs.com
213 followers 450 following 67 posts

Principal Product Manager working on Microsoft Edge working on stuff that web developers care about. He/Him.

PostsRepliesMedia
Andy Luhrs @aluhrs.com · 05/08/2026
Uncontrollable urge to tell my coding agent “The key is somewhere in an env file on my device, can you find it yourself” so I don’t have to look for it.
000
Andy Luhrs @aluhrs.com · 21/07/2026
Is there any reports around the cost per “level” of AI intelligence over time? Like cost of GPT-4-equivalent or Opus-4.5-equivalent?
010
Andy Luhrs @aluhrs.com · 20/06/2026
New term - “skillclimbing”: hillclimbing optimization of your AI agents skills and instructions.
120
Reposted by Andy Luhrs
Kevin Babbitt @kevinbcmu.bsky.social · 18/03/2026
POLLS: The CSS Working Group is looking for author feedback on two topics related to CSS Gap Decorations. Questions below. For background information on Gap Decorations, see the explainer: github.com/w3c/csswg-dr...
github.com
11918
Reposted by Andy Luhrs
Bramus @bram.us · 15/03/2026
New in Chromium 148: detect at-rule support in CSS with `@supports at-rule(@keyword)` www.bram.us/2026/03/15/a... Chrome 148 is currently available on the Canary and Dev release channels. It goes stable at the end of April.
bram.us
Detect at-rule support in CSS with @supports at-rule(@keyword)
Back in January 2022, I wrote about an exciting new CSS Working Group decision: a function to detect at-rule support using @supports at-rule(@keyword). Fast forward to today, and the CSS Conditional R...
34212
Reposted by Andy Luhrs
Bruce Lawson @brucel.bsky.social · 06/03/2026
Exciting! Request for developer feedback: focusgroup HTML attribute "a proposed declarative way to add keyboard arrow-key navigation to composite widgets such as toolbars, tablists, menus, listboxes, etc. Replaces hundreds of lines of JavaScript boilerplate." developer.chrome.com/blog/focusgr...
developer.chrome.com
Request for developer feedback: focusgroup  |  Blog  |  Chrome for Developers
Try out focusgroup and comment on the proposal.
43916
Andy Luhrs @aluhrs.com · 07/03/2026
New post about cleaning and refactoring my chatbot/assistant and getting it all ready for true assistant work. aluhrs.com/blog/2026-03-05-lenny-v3…
aluhrs.com
Andy Luhrs - Lenny V3 - Refactoring and Vibecleaning
Refactoring my chatbot/assistant to be more scalable and maintainable.
020
Reposted by Andy Luhrs
Tab Atkins-Bittner @tabatkins.com · 06/03/2026
Omigosh, the abandoned `focusgroup` attribute proposal is revived and improved! developer.chrome.com/blog/focusgr... I'm *so excited* for this, it's a common and super useful behavior that is *absolute trash garbage* to implement yourself. *Plus* it gives you some common ARIA mappings for free!
developer.chrome.com
Request for developer feedback: focusgroup  |  Blog  |  Chrome for Developers
Try out focusgroup and comment on the proposal.
5174
Andy Luhrs @aluhrs.com · 20/02/2026
A lot of cool options, but I love my Alice layout! www.justinmklam.com/posts/2026/02/b…
justinmklam.com
A Beginner’s Guide to Split Keyboards
Come to the dark side, we have keyboard shaped cookies.
010
Andy Luhrs @aluhrs.com · 19/02/2026
Replaced my OpenClaw with something custom after a week of playing with it. Wrote down a bit of an overivew. aluhrs.com/blog/2026-02-18-lenny-v2
aluhrs.com
Andy Luhrs - Compendium - Lenny V2
What I'm moving to after playing with OpenClaw for a bit.
010
Andy Luhrs @aluhrs.com · 14/02/2026
This is a solid take on relying on AI for design or product needs. boagworld.com/emails/ai-dependency
boagworld.com
Why I'm Not Worried About My AI Dependency
Should we worry about over-relying on AI? After becoming completely dependent on it, I think we're asking the wrong question.
000
Andy Luhrs @aluhrs.com · 12/02/2026
996 work week? What about a 3x10 work week? aluhrs.com/blog/2026-02-11-3x10
aluhrs.com
Andy Luhrs - The 3x10 Workweek?
Some lighthearted thinking about what the ideal workweek is for software engineers right now.
010
Andy Luhrs @aluhrs.com · 02/02/2026
I setup OpenClaw/clawdbot and naturally had to write about it like everyone else. Honestly, I kinda get the hype. aluhrs.com/blog/2026-01-31-lenny
aluhrs.com
Andy Luhrs - Lenny, My AI Assistant
My thoughts on the viral "clawdbot" (OpenClaw)
010
Andy Luhrs @aluhrs.com · 20/01/2026
Also, Ralph.
010
Andy Luhrs @aluhrs.com · 16/01/2026
Could you imagine being a developer name Claude in 2026? Must be awful.
110
Andy Luhrs @aluhrs.com · 14/01/2026
Like many others, I spent some time over the holidays vibe-coding and talking with friends about vibe-coding. Threw my current thoughts and workflows here: aluhrs.com/blog/2026-01-13-ai-coding
aluhrs.com
Andy Luhrs - Basics of AI-Assisted Coding
A few patterns of AI-assisted coding that I find myself using.
030
Reposted by Andy Luhrs
Josh W. Comeau @joshwcomeau.com · 24/09/2025
We’re live!! My brand-new course, “Whimsical Animations”, is now available. 🥳🎉 whimsy.joshwcomeau.com I’m so excited to share all of my animation tools and techniques with y’all. 😄
whimsy.joshwcomeau.com
Whimsical Animations
Learn how to create charming interactions and delightful touches using the magic of CSS, JavaScript, SVG, and Canvas. I’m sharing all my tricks in this one!
17307101
Reposted by Andy Luhrs
Alex Russell @infrequently.org · 21/09/2025
If you've ever wondered if there's anything to the critique that some browsers "ship whatever they want" or "don't follow standandards", here's the long-form explanation of why those arguments fail on their own terms: infrequently.org/2025/09/stan...
infrequently.org
Web Standards and the Fall of the House of Iamus - Infrequently Noted
Working Groups do not invent the future, nor do they hand down revealed truths by divining entrails like prophets of the House of Iamus. In practice, they are diligent, thoughtful historians of…
1185
Andy Luhrs @aluhrs.com · 12/09/2025
Amazing reading list on learning modern CSS features. nerdy.dev/cascading-secret-sauce
nerdy.dev
One List To Rule Them All · September 10, 2025
In the darkness may it bind us
0176
Andy Luhrs @aluhrs.com · 03/09/2025
My father-in-law is a web developer. It is difficult to get his attention when he’s on magnificent websites because he is lost in wonder. We were looking at McMaster-Carr years ago and I asked him what it’d take to build it today. I will never forget his answer… “We can’t, we don’t know
020
Andy Luhrs @aluhrs.com · 02/09/2025
WebPerf PSA: Abstraction layers aren’t always good. blog.meca.sh/3lxoty3shjc2z?auth_com…
000
Andy Luhrs @aluhrs.com · 31/08/2025
Book advent calendars for kids are the best.
000
Andy Luhrs @aluhrs.com · 30/08/2025
Another great list of examples to throw into the anti-JS pile. If you’re a web developer who hasn’t paid attention to CSS in a while, give this a read! lyra.horse/blog/2025/08/you-dont-ne…
1156
Andy Luhrs @aluhrs.com · 26/08/2025
Was doing some memory analysis today and got surprised at toLowerChar taking hundreds of KB of memory, seems like a lot. I quickly realized Unicode is complicated and there are much bigger fish to fry.
020
Andy Luhrs @aluhrs.com · 23/08/2025
Testing posting to BlueSky and Mastodon from my personal site! (Via EchoFeed)
010
Andy Luhrs @aluhrs.com · 23/08/2025
PSA: A garbage collected language isn’t a blank check to generate garbage.
150
Andy Luhrs @aluhrs.com · 22/08/2025
Catching up on a backlog of RSS posts. If you missed Alex’s big list of links last month, there’s a ton of good stuff to bookmark here! infrequently.org/links
000
Andy Luhrs @aluhrs.com · 21/08/2025
Some good food-for-thought and examples of non-chatbot AI UIs… www.geoffreylitt.com/2025/07/27/eno…
000
Andy Luhrs @aluhrs.com · 21/08/2025
If you have a JS library that might impact performance spend the time to read and implement this! csswizardry.com/2025/07/the-extensi…
csswizardry.com
Making Sense of the Performance Extensibility API – CSS Wizardry
Making sense—and use!—of the new Performance Extensibility API in Chrome DevTools.
0152
Andy Luhrs @aluhrs.com · 17/08/2025
This is a REALLY impressive deep dive into making your own search engine. Wow. blog.wilsonl.in/search-engine
010
Andy Luhrs @aluhrs.com · 16/08/2025
drobinin.com/posts/how-i-accidental…
drobinin.com
How I accidentally became PureGym's unofficial Apple Wallet developer
Tired of fumbling with the PureGym app for 47 seconds every morning, I reverse-engineered their API to build an Apple Wallet pass that gets me in with a quick wrist scan. Along the way, I discovered their bizarre security theatre: QR codes that expire every minute while my ancient 8-digit PIN lives forever.
030
Andy Luhrs @aluhrs.com · 11/07/2025
Top vibe-coding prompt - “This should be possible without JS when using modern CSS features right?”
0144
Andy Luhrs @aluhrs.com · 03/07/2025
Pretty elaborate workflow, but always interesting to see what’s working well for people with coding agents. john-rush.com/posts/ai-20250701.html
john-rush.com
Building a Personal AI Factory (July 2025 snapshot)
Multiple parallel Claude-Code sessions power a self-improving AI factory where agents write, review, and refine code.
030
Andy Luhrs @aluhrs.com · 24/05/2025
The most thorough view into how to convince people about a11y. Must-save for anyone who has struggled with that before! stephaniewalter.design/blog/how-to-…
stephaniewalter.design
How to Convince People to Care and Invest in Accessibility by Stéphanie Walter - UX Researcher & Designer.
Learn how to advocate for accessibility, drive change without authority, and connect inclusive design to business impact. Practical tips, strategies, and real-world examples included.
020
Andy Luhrs @aluhrs.com · 23/05/2025
Another performance area we’re looking at is giving devs the ability to measure smoothness of animations. Still early thinking and a lot of different directions - would love to hear if anyone has use-ca... github.com/MicrosoftEdge/MSEdgeExpl…
github.com
MSEdgeExplainers/AnimationSmoothness/explainer.md at main · MicrosoftEdge/MSEdgeExplainers
Home for explainer documents originated by the Microsoft Edge team - MicrosoftEdge/MSEdgeExplainers
030
Andy Luhrs @aluhrs.com · 23/05/2025
Our team is taking a look at a long-standing gap in CSS to style browser tooltips! We aren’t sure when we’ll be able to do the work to implement this yet, but I’m going to be iterating on open issues a... github.com/MicrosoftEdge/MSEdgeExpl…
github.com
MSEdgeExplainers/CSSTooltipPseudo/explainer.md at main ?? MicrosoftEdge/MSEdgeExplainers
Home for explainer documents originated by the Microsoft Edge team - MicrosoftEdge/MSEdgeExplainers
000
Andy Luhrs @aluhrs.com · 16/05/2025
I've been doing a bit of animation benchmarking and perf work, so I pulled together a quick extension to inject main thread tasks onto a page to help simulate jank. github.com/aluhrs13/JankExt
010
Reposted by Andy Luhrs
Aaron Gustafson @aaron-gustafson.com · 14/05/2025
I know of a handful of accessibility specialists who were impacted by yesterday’s RIF at Microsoft. If you’re looking for amazing accessibility talent (PMs and Engineering Managers), please reach out.
02824
Andy Luhrs @aluhrs.com · 14/05/2025
I’ve heard of the primary point here before, it a lot of good follow-up advice in the details. sketchplanations.com/dont-think-of-…
sketchplanations.com
Don't Think of an Elephant
When teaching framing at UC Berkeley, Professor George Lakoff would often begin with a simple test: "Don't think of an elephant." Except everyone does. When he said elephant, like it or not, all things elephant—large, slow, floppy ears, tusks, trunk, jungle, savannah—were likely to come to mind. Lakoff gives another example: When Richard Nixon came on TV and said, "I am not a crook," everyone thought about him as a crook, even though he explicitly said he wasn't. Another case he shares is when someone says tax relief, it evokes a frame whereby taxes are a burden, someone imposing those taxes is hurting people, someone relieving you of that hurt is helping you, and anyone who wants to stop that relief is a villain. Suppose you think taxes are good, not bad; if you use the term tax relief when arguing against it, you're setting yourself up as the villain. Using someone else's language draws you into their worldview. Some Framing Examples Here are some less political, more everyday examples of framing at work: Stay-at-home parent and working parent evokes a frame where staying at home isn't work. Quality time frames certain family moments as more valuable and implies that some time is less meaningful. Home CEO reframes running a household as a business—children as projects or deliverables, perhaps? When someone does a favour, saying "I owe you one" frames the favour as a transaction to be repaid rather than a gift. Screen time evokes a frame of off-screen vs on-screen time, as opposed to considering the value of what you're doing, whether on-screen or off. Reframing Signage I love spotting signs that shift the frame in positive, thoughtful ways. Rather than presupposing bad behaviour, they invite good. For example, this sign from Kew Gardens: "Respecting Significant Trees Please help us manage our trees to ensure we can enjoy them for as long as possible. This tree needs a break from adults and children climbing on it. Please don't climb." Rather than setting Kew up as the rule-enforcer spoiling your fun, it frames them as caretakers—inviting you to help give a tired tree a break. Not climbing becomes an act of kindness, not a restriction. Not climbing becomes an act of respect rather than restriction. Our local wetlands has a "Ducks only" sign instead of an admonishing "Keep off the grass". Or at an ATM, even saying "Wait" rather than "Don't remove your card" helps keep removing your card further from your mind. Language shapes and reflects how we think. Using language that negates a frame evokes the frame. What frames are you evoking? Related Ideas to Don't Think of an Elephant Everything I've learned about framing, metaphor, and how they shape our thinking continues to fascinate me. Here are some related sketches and powerful metaphors: Primary metaphor The Frog Boil Metaphor Rivers and Buckets Compliments are Gifts The Learning Pit The Swiss Cheese Model Trust Battery The Accountability Ladder Sharpen the Saw Ideas Are Locations, Objects, Food Framing Get More Participation: Instead of "Anything Else?" ask "What Else?"
031
Andy Luhrs @aluhrs.com · 13/05/2025
More great in-depth CSS stuff. This one covers the nuances of setting height! www.joshwcomeau.com/css/height-enig…
joshwcomeau.com
The Height Enigma • Josh W. Comeau
One of the most perplexing and befuddling things in CSS for me, for many years, was the behaviour of percentage-based heights. Sometimes, seemingly at random, setting “height: 100%” would have no effect at all. When I finally figured out what was going on, it was like a puzzle piece snapping into place; everything made so much more sense! In this post, I’ll share the epiphany I had, and we’ll explore some solutions.
000
Andy Luhrs @aluhrs.com · 11/05/2025
Obviously I’m biased, but use 👏 the 👏 platform 👏 plainvanillaweb.com/index.html
000
Andy Luhrs @aluhrs.com · 11/05/2025
Do I need a 3D printed printing press? No. Do I want to make one? Yes. openpressproject.com/blogs/news/how…
openpressproject.com
How to 3D Print Your Own Printing Press
Hi everyone! In this blog post we’ll show you how to 3D-print your own tiny etching press! Because the press needs to be as durable as possible, there are a few things to pay attention to. A) 2 x side part – B) upper roller – C) lower roller – D) press table – E) roller wrench – F) lower roller pin – G) 2 x M5 screw –
010
Andy Luhrs @aluhrs.com · 10/05/2025
Saw the title and laughed, but all these actually feel accurate and it’s a good reminder. sketchplanations.com/how-to-instant…
sketchplanations.com
How to Instantly Feel Better
When I first saw a version of How to instantly feel better I could immediately relate. I thought it could do with a Sketchplanations version. Maybe try some of the suggestions and let me know how it goes. If you're: Angry -> Sing Burned out -> Walk Overthinking -> Write Anxious -> Breathe Stressed -> Exercise Sad -> Gratitude Impatient -> Reflect on progress Lazy -> Cold shower Your mileage may vary. I can't help but think that Walk in nature, which is about as close to a miracle cure as we have, is also a good strategy for all of them. Angry -> Walk in nature Burned out -> Walk in nature Overthinking -> Walk in nature Anxious -> Walk in nature Stressed -> Walk in nature Sad -> Walk in nature Impatient -> Walk in nature Lazy -> Walk in nature Here's a visual of this instead: How to instantly feel better - walk in nature I didn't create the original. I saw this one, shared by the brilliant Info is Beautiful. Many people have created versions of this. If you know—or are—the original creator, thank you! And please get in touch. Related Ideas to How to Instantly Feel Better Also see: Forest bathing The 3-Day effect Box breathing 5 Ways to Wellbeing Snerdle Maze, Labyrinth Compliments Are Gifts Vorfreude — the pleasure of anticipation Languishing Notice when you're happy Don't compare your back of house with others' front of house When drinking tea, just drink tea Prints/cards etc of How to Instantly Feel Better, and of How to Instantly Feel Better — Walk in nature
010
Andy Luhrs @aluhrs.com · 08/05/2025
Saving this for future me. I don’t have to do actual CAD myself much, but a lot of good guidance when designing for 3D printing. blog.rahix.de/design-for-3d-printing
blog.rahix.de
Design for 3D-Printing - Rahix' Blog
Deep dive into mechanical design that is optimized for 3d-printing.
010
Andy Luhrs @aluhrs.com · 06/05/2025
www.huffpost.com/entry/utah-school-…
huffpost.com
I Randomly Decided To Pay Off A School’s Lunch Debt. Then Something Incredible Happened.
“I immediately wondered if this was real.”
030
Andy Luhrs @aluhrs.com · 06/05/2025
As someone who struggles with CSS, I’d love to see more prescriptive articles like this. Does anyone know of others who share their approaches like this? alex.party/posts/2025-03-23-grid-fi…
alex.party
Grid First, Flex Third
I’ve been mulling this topic for months now, and I’m pretty firmly of the opinion if you are attempting to do some layout in CSS, you should reach for display:grid first, followed by display:block, followed by display:flex. Grid allows the layout element to be in control of how things get placed, where as flex really relies on the children to define their widths, which most of the time is not how layout should function at all.
021
Andy Luhrs @aluhrs.com · 06/05/2025
weeeee weeknotes - aluhrs.com/blog/2025-05...
aluhrs.com
Andy Luhrs - Weeknote - May 5th 2025
Notes and updates from the week of May 5th 2025.
100
Reposted by Andy Luhrs
Patrick Brosset @patrickbrosset.com · 05/05/2025
The web platform has been missing an imperative way to let users of assistive technology know that something has changed on the page, when no DOM changes occurred. The Aria Notify API aims to bridge that gap. Try it out and let us know what you think!
blogs.windows.com
Creating a more accessible web with Aria Notify
We're excited to announce the availability, as a developer and origin trial, of ARIA Notify, a new API that's designed to make web content
46626
Andy Luhrs @aluhrs.com · 03/05/2025
Huh. I know the basics of speculation rules, but this is an interesting take. Almost wonder if it’s a bug? www.pawelpokrywka.com/p/stretching-…
pawelpokrywka.com
Stretching Google's prefetching
Making Chrome play a 19 MB video while "offline"
120
Andy Luhrs @aluhrs.com · 03/05/2025
Love seeing how other people approach prompting. A good step-by-step for anyone who wants to work on their skills. martinfowler.com/articles/exploring…
martinfowler.com
Building TMT Mirror Visualization with LLM: A Step-by-Step Journey
Notes from my Thoughtworks colleagues on AI-assisted software delivery
000