The Curious Engineer

All blogs / Frontend / CSS / browsers

daverupert.com

daverupert.com

The personal blog of Dave Rupert, web developer and podcaster from Austin, TX.

Frontend / CSS / browsersWeb developmentAI / MLEssays / personal

Posts
563 from 26 Jan 2009 to 26 Oct 2026
Posting
weekly (46 in the last year)
Kind
personal blog
Feed
https://daverupert.com/atom.xml

2026 34

  1. Arc-like automatic picture-in-picture in Chromium
  2. Bad at email
  3. Recursion is DEAD and HTML killed it
  4. Play tupo
  5. How Many Dudes?
  6. I wish you the best in the Offline
  7. Introducing Microlighter
  8. Shadow-piercing local component variables
  9. Vibe Check №43
  10. Before I go: Double your business with companies you like
  11. The new yet familiar CodePen 2.0
  12. Finding curated public domain images
  13. A workaround for hiding empty slots in Chromium
  14. Spoons by Sam
  15. Vibe Check №42
  16. The duality of language models in the browser
  17. 10,000-watt GPU meet 40-watt lump of meat
  18. I don't want a screenshot of your Claude conversation
  19. When moving fast, talking is the first thing to break
  20. Inverted themes with light-dark()
  21. Ozempic dreams
  22. Before I go: People like it when other people make things
  23. People are not friction
  24. Priority of idle hands
  25. Smaller and dumber
  26. Magic Words
  27. Write about the future you want
  28. I'm swearing off APIs entirely
  29. The best version of my site so far...
  30. Focus rings with nested contrast-color()?
  31. Using your design system colors with contrast-color()
  32. Interpolate contrast-color() to manipulate lightness
  33. Algorithmic hover states with contrast-color()
  34. Twenty Twenty-Five

2025 53

  1. Vibe Check №41
  2. One thing churches do well
  3. Grid Paper
  4. Clues by Sam
  5. Inkwell Games
  6. Project Kamp
  7. Precious Plastic
  8. Golden candlesticks
  9. La Rinconada, Peru
  10. ARIatHOME
  11. The built-in storytelling of Rust
  12. Random Mini Dungeons
  13. Vibe Check №40
  14. Lots to shout about in Quiet UI
  15. The killer feature of Web Components
  16. Why I hate the MVP car
  17. Many years on the job and I still don't get it.
  18. “Why would anybody start a website?”
  19. Git diagramming "The Weave"
  20. Limiting YouTube to a Single Tab
  21. Classifiers and cosmotechnics
  22. Vibe Check №39
  23. All the concerns that make you a boring developer
  24. Theater UX
  25. A modest proposal for new holidays to manage your digital life
  26. A fiscal recalibration
  27. The Economy? He died five years ago.
  28. Easy sci-fi rectangles with corner-shape
  29. Before I go: Always buy the $200 Yamaha
  30. A social media ethos
  31. The Pyramid of Merit
  32. Productivity traps I fall into regularly
  33. Inverse text-sizing based on text-length with attr()
  34. Chekuskin's dream
  35. The unsung principles of RedwoodSDK
  36. The Fifth Estate
  37. Take My Hand, Precious Lord
  38. Vibe Check №38
  39. Moving from Notion to Obsidian
  40. How to make a Link Aggregator in Obsidian
  41. Week Links №2: April 2025
  42. Don't let your voice be flattened by the über theme
  43. Enshittification as a matter of taste
  44. Tag, you're it
  45. The only way to know for sure... is to build a prototype
  46. I don't like sand
  47. Vibe Check №37
  48. 15 Minutes
  49. A story about pans
  50. Raycast Focus works really well
  51. My website has been gaslighting you
  52. American Hearts
  53. Making "this" less annoying

2024 62

  1. Twenty Twenty-Four
  2. Vibe Check №36
  3. My little games workshop
  4. CSS wants to be a system
  5. Every token is a feature
  6. Intermittent fasting
  7. I got the ADHD, too
  8. Goodbye, Moogs
  9. Hammers
  10. Where web components shine
  11. Vibe Check №35
  12. Hibiclens
  13. Good forms
  14. Finding questions and answers about why I like books
  15. The Dev Tools Performance Monitor Panel
  16. Vibe Check №34
  17. The cost of fueling my body
  18. Summer rental
  19. Mini 4WD
  20. Vibe Check №33
  21. A common web component learning blunder
  22. Dave Goes Microsoft
  23. Vibe Check №32
  24. A quick light-dark() experiment
  25. Thoughts on Cosmotechnics
  26. Ideas for my dream CMS
  27. A weighted vest
  28. The native app install experience
  29. Mouthguard
  30. How do you verify that?
  31. John Romero doesn’t believe in prototypes
  32. Vibe Check №31
  33. How to get on a podcast
  34. Duolingo
  35. A tale of three architectures
  36. UI = f(statesⁿ)
  37. Week Links №1: Mid-Feb 2024
  38. A dozen thoughts about AI
  39. CoraQuest
  40. Continuous startup jobs
  41. A holy communion
  42. “I used to listen to your podcast”
  43. An inbox full o’ opportunities
  44. At last, browser choice*
  45. Big, beautiful, beefy focus states with :focus-visible
  46. What Can a Website Do?
  47. Are Design Systems a zero-interest rate phenomenon?
  48. Users first then do teams
  49. One big, one little
  50. The time to unmaintainable is very low
  51. Play at work
  52. Where have all the flowers gone?
  53. WobblyBox, a web component for wobbly boxes
  54. Stitch images together with Stitchy
  55. Not a collector, but...
  56. Dropout
  57. Trying to be the ideal American family with a small fridge
  58. Ecosia
  59. MDX with Web Components Part II
  60. Accessible Fart Machines
  61. Quotes from moving house
  62. Twenty Twenty-Three

2023 66

  1. The History of Donkey Kong and Mario
  2. Vibe Check №30
  3. My /projects page
  4. I spent a whole week refactoring a single file
  5. Vibe Check №29
  6. My /stories page
  7. So you’ve been publicly accessibility-shamed
  8. The plan and the plateau
  9. Gummy vitamins as a candy replacement
  10. Snap Kitchen
  11. Califia Farms Café Oat for Baristas Blend
  12. Fun water
  13. MDX with Web Components
  14. FitVids has a web component now
  15. Read Later in Feedbin
  16. Nine things automated accessibility tests can’t test
  17. Listen to Page in Mobile Safari 17
  18. Adam Savage's One Day Builds
  19. Luro is out of beta 🚀
  20. Your feedback means more to small teams
  21. Quick thoughts on chips
  22. Expert Idiot
  23. Scroll shadows with animation-timeline
  24. Personality tests and nazis
  25. If I’m already using React, why should I rewrite my app with Web Components?
  26. Something’s different with the Vision Pro
  27. Uncovering a new class of responsibilities
  28. Vibe Check №28
  29. Anyone can dig up a road
  30. If Web Components are so great, why am I not using them?
  31. One friend a day
  32. Liquid Death
  33. My dad recliner
  34. Vibe Check №27
  35. Lessons from Soviet Russia on deploying small nuclear generators
  36. My behind the scenes of animation YouTube playlist
  37. Markdown images are an anti-pattern
  38. Boringness in Design Systems
  39. My double standards about JS framework compilers
  40. A guy telling peanut butter jokes for 12 minutes
  41. Getting started with View Transitions on multi-page apps
  42. Sometimes the job is an assembly line
  43. The Hurdy-Gurdy software engineer
  44. Using Arc Boosts to identify bots in Elk
  45. Vibe Check №26
  46. Japanese manhole cover fabrication processes
  47. Goodbye, Rudy
  48. Limitations and websites
  49. GameDev Journal №1: Otis’s Zelda-like
  50. A bag of distractions
  51. The internet has broken gift giving
  52. The Feature Work → Maintenance Work Loop
  53. The case for Flex applications
  54. Vibe Check №25
  55. Creating Web Components on the Kevin Powell Livestream
  56. SOLVED! The Case of the Bing Ban Theory
  57. Lessons from my Gunpla Tools
  58. Yoinking auto-transcripts from Slack
  59. Using AI to appease Jest
  60. CSS Wishlist 2023
  61. So you want to make a new JS framework
  62. My Bing Webmaster Guidelines Compliance Report
  63. Updates on my Bing ban
  64. I'm Shadow Banned by DuckDuckGo (and Bing)
  65. HTML with Superpowers: The Guidebook
  66. Vibe Check №24

2022 65

  1. Twenty Twenty-Two
  2. Megan Smith explaining the General Magic prototyping process
  3. They were supposed to replace the creative jobs last
  4. Vibe Check №23
  5. Dragon's Heaven
  6. They invented fifty colors for Akira
  7. How to capture single frame from an HTML video
  8. E-Z Play Today
  9. It takes one person to knock down a silo
  10. Web Component News - Fall 2022
  11. Vibe Check №22
  12. The story of this empty box
  13. A Use Case for Cascading Attribute Sheets
  14. Can you hear the difference between a $200, $2,000, $20,000, and $200,000 guitar?
  15. Vibe Check №21
  16. The Patchability of the Open Web
  17. Denialists, Alarmists, and Doomists
  18. 26 Things from “101 Things I Learned in Architecture School”
  19. Shigeru Miyamoto on the Secret to Success
  20. Prototyping to learn
  21. Solara
  22. 30 Minute Study Model
  23. Vibe Check №20
  24. Modern alternatives to BEM
  25. The web is a harsh manager
  26. Thoughts on Copilot
  27. Vibe Check №19
  28. Before I go: What I know about putting on a rock show
  29. Cloud-work vs. Land-work
  30. The kids are online
  31. Creating a Netlify-to-Notion form
  32. Solving “The Dangler” Conundrum with Container Queries and :has()
  33. Where I'm at on climate change
  34. Vibe Check №18
  35. The energy to suggest change
  36. The Demo → Demo Loop
  37. Goodbye, IE
  38. Vibe Check №17
  39. The recycling backlog
  40. Thoughts on spectrums
  41. Notes from a gopher:// site
  42. Vibe Check №16
  43. Server-side vs Client-side Analytics
  44. Inspiration in the Tall Grass
  45. An unplanned open redesign
  46. Productivity-sniped by PARA
  47. My Weekly Engineering Report
  48. 7 Web Component Tricks
  49. What if... one day everything got better?
  50. Vibe Check №15
  51. Different people, different ways
  52. Vibe Check №14
  53. Goodbye, Big Freeda
  54. The 15 minute fix vs the 30 day fix
  55. 原爆を許すまじ
  56. Τ’ακορντεόν
  57. Been in this war for too long
  58. Six end of week links
  59. Before I go: When it comes to complaining about web browsers
  60. Five links for a Friday afternoon
  61. Vibe Check №13
  62. Five Hundred ShopTalks
  63. The Vacation
  64. The man playing the ukulele at the doctor’s office.
  65. HTML is general, ARIA is specific

2021 48

  1. Vibe Check №12
  2. Twenty Twentyone
  3. Five good feelings
  4. Sustaining Maintaining
  5. Vibe Check №11
  6. Status Performance Analysis in Team Fortress 2
  7. Gaming improved my EQ
  8. Blogtober
  9. Holding Beef 🥩
  10. My pre-publish blogging rituals
  11. The mistake every new game developer makes
  12. Let's talk about Native HTML Tabs
  13. 🎨 Alpha Paintlet
  14. HTML with Superpowers
  15. My retirement seminar
  16. Why don’t video games take sex seriously?
  17. Vibe Check №9
  18. Shop Talk Goes Video
  19. My Notion Blogging Kanban
  20. All things are possible with code, but not everything is beneficial
  21. Vibe Check №8
  22. The Surprise Chain
  23. CSS Modules-in-CSS Module Scripts
  24. Vibe Check №7
  25. One-offs and low-expectations with Safari
  26. Memories cost money
  27. DX, to me
  28. My petite-vue review
  29. Vibe Check №6
  30. Log Jams
  31. The perfect, more expensive, out-of-stock thing versus the less perfect, less expensive, in-stock thing.
  32. The Amnesia Fortnight Documentary
  33. Vibe Check №5
  34. Vibe Check №4
  35. The OceanMaker
  36. Algorithms and Art
  37. The Data is In!
  38. Vibe Check №3
  39. How much for a planet?
  40. Vibe Check №2
  41. One month on Analog
  42. The web is something different
  43. Dearest Martha,
  44. Vibe Check №1
  45. Traditional Japanese carpentry versus modern times
  46. My typical day
  47. Art Direction for Static Sites
  48. Keep Your Hands Off Eizouken!

2020 37

  1. Twenty Twenty
  2. Dave goes back to Mac
  3. Street Fighter Alpha: An oral history
  4. A tale of four prototypes
  5. Happier HTML5 form validation in Vue
  6. Technical debt as a lack of understanding
  7. Darmok and Jalad at Tanagra
  8. Sass vars, CSS vars, and semantic theme vars
  9. A trip to the bookstore
  10. A quintessential blogging mistake.
  11. Do the next right thing
  12. Follow the fun
  13. alt attributes like paragraphs
  14. The tangled webs we weave
  15. Boredom begets boredom
  16. I'm writing this on my phone
  17. What is the Value of Browser Diversity?
  18. Jettison the cargo
  19. Gettin’ Foldy with the Dual-screen Web (Part II)
  20. Gettin’ Foldy with the Dual-screen Web (Part I)
  21. “We‘re in a rebuild the plane while flying situation”
  22. RFC 1925 - The Twelve Networking Truths
  23. Austin Revealed: Civil Rights Stories
  24. Jon Batiste: Tiny Desk Concert
  25. Tradeoffs and Shifting Complexity
  26. Five Key Milestones in the Life of a Design System
  27. Initial Impressions of WSL 2
  28. Oh, the Paywalls You'll Meet
  29. Low-Challenge, High-Skill Tasks in Terrible Times
  30. My tall friend Christopher
  31. Maintaining Performance
  32. What's in a Database Table Name?
  33. HTML: The Inaccessible Parts
  34. A Two Settings Problem
  35. The Web is Industrialized and I helped industrialize it
  36. How to Start a Podcast
  37. When Public Speaking Goes Wrong

2019 32

  1. Twenty Nineteen
  2. Everything I Know About Remote Work
  3. Why <details> is Not an Accordion
  4. Five packages
  5. Working with pain
  6. Malloc
  7. Squandered Star Wars Characters
  8. Is Using Coil to Monetize Prompts Gonna Work?
  9. Introducing Prompts
  10. Weeknotes #9
  11. Sticks and Ropes.
  12. What I Like About Eleventy
  13. Weeknotes #8
  14. What I Like About Vue
  15. Weeknotes #7
  16. The Three Evils of Society
  17. Books on Management
  18. Getting Settled at the New Dave Rupert LLC HQ
  19. Weeknotes #6
  20. Weeknotes #5
  21. Itemizing Responsibilities
  22. Weeknotes #4
  23. Goodbye Google Analytics, Hello Fathom
  24. Some Unsolicited Blogging Advice
  25. Perceived Velocity through Version Numbers
  26. Anthology of Mute Buttons in Voice Chat Apps
  27. The State of Agile Software in 2018
  28. Weeknotes #3
  29. Weeknotes #2
  30. Accessible Page Navigation in Single Page Apps
  31. 4 Things I Miss About Mac
  32. Angular, Autoprefixer, IE11, and CSS Grid Walk into a Bar...

2018 39

  1. Twenty Eighteen
  2. Weeknotes #1
  3. #​Edge​Goes​Chromium
  4. The Good Path
  5. Afro-American Work Songs in a Texas Prison
  6. Concerns of the Self, the Team, and the Org
  7. How Mega Man 11's Levels Do More With Less
  8. Hard Costs of Third-Party Scripts
  9. 4 Podcast Arcs Worth Listening To
  10. If Statements Should Cost $10,000 Each
  11. Color Cycling with Workers
  12. Ch-Ch-Ch-Changes
  13. Repetitive Strain
  14. A11Y Nutrition Cards
  15. Twitchonomics
  16. Assistive Technologies I Test With
  17. Fixing these webs
  18. The Caves of Steel
  19. The Righteous Mind
  20. When
  21. What’s Golf for People Like Me?
  22. Telepresence
  23. The React is “just” JavaScript Myth
  24. My Struggle with Testing Code
  25. Webdev on Windows with WSL and VS Code
  26. Larry Tesler Interview: The Laws of Interaction Design
  27. The Eponymous Laws of Tech
  28. Prototyping and the Wintergatan Marble Machine
  29. How Much Are Podcasts Worth?
  30. Pitfalls of Card UIs
  31. #davewentandroid
  32. The Four Jobs in Web Design
  33. Animated SVG Radial Progress Bars
  34. Machines are Ahead of Morals...
  35. The Mammoth
  36. Cheapass Parallax
  37. Bad Month for the Main Thread
  38. Endless Content
  39. Introducing ❬ASIDE❭ QUEST

2017 34

  1. Twenty Seventeen
  2. More Insidiously Still...
  3. March
  4. Cognitive Overload
  5. 4 Documentaries about Animation
  6. 4 Documentaries about Game Dev
  7. 4 YouTube Channels for Web Devs
  8. Team Incentives in Overwatch
  9. Happier HTML5 Form Validation
  10. The Medium
  11. Is Heart the greatest rock band ever?
  12. Me listening to any song by The Police
  13. Transpiled for-of Loops are Bad for the Client
  14. The Era of Newshammer
  15. A good science fiction story...
  16. Dave Goes to the Microsoft Edge Web Summit 2017
  17. Breaking the Grid
  18. Jonathan Haidt: The moral roots of liberals and conservatives
  19. Disalienation: Why Gender is a Text Field on Diaspora
  20. Shigeru Miyamoto's 1999 GDC Keynote
  21. The Problem with IE9
  22. Jekyll Includes are Cool
  23. Namespaces
  24. 4 Things I Know About Pattern Libraries
  25. Having a Hard Time
  26. Initial Impressions of CSS Grid Layout
  27. In-somecontext Sass Partials
  28. How Buildings Learn
  29. Thoughts on Negative Margins
  30. Hassle-free Full Bleed with *:not()
  31. My Bash on Windows Dev Environment
  32. My PocketCHIP
  33. Disneyland and the Character Machine
  34. APT Features that Web Tooling Craves

2016 26

  1. Dave Builds a PC
  2. Addiction, the Mobile Currency
  3. The Shitlord in the Forum Problem
  4. Desktop is Lava
  5. How I'd Save Windows Phone
  6. Super Mario 64 - 1996 Developer Interviews
  7. The Shock of the New: Trouble in Utopia
  8. The Web Is Ruined and I ruined it
  9. Windows Shutdown Crapfest
  10. I don't care about accessibility
  11. Hidden Expectations
  12. Solvable Chunks: One Week Video Game
  13. The #davegoeswindows Finale
  14. A Standard System of Measurements?
  15. Ruby on Rails on Bash on Ubuntu on Windows
  16. Dave Goes Build
  17. Responsive Product Comparison Tables
  18. Alternate Realities
  19. Lists, Details, and Flows
  20. Jekyll on Bash on Ubuntu on Windows
  21. Dave Goes Back to Mac for 20 Minutes
  22. Spring Cleaning
  23. Screencasts on a (Performance) Budget
  24. Light Frames, Great Content
  25. Dear Github
  26. #davegoeswindows check-in

2015 25

  1. Intrinsic Placeholders with the Picture Element
  2. The Cost of Frameworks
  3. Chrometophobia
  4. On Hurk-Jerk
  5. Dave Goes to the Microsoft Store
  6. The Invisible Hand of the Barista
  7. Windows Editors and Shells
  8. Making a Video Game
  9. Side Products
  10. Developing on Windows
  11. Dave is Going Windows
  12. Every Browser is the New IE (to me)
  13. Post literate society
  14. Children of the Magenta (Automation Paradox, pt. 1)
  15. The Gruen Effect
  16. A Special Feature
  17. Loki’s Wager
  18. Apple and Google Race to See Who Can Kill the App First
  19. Progressive Apps: Escaping Tabs Without Losing Our Soul
  20. What’s New in Web Development in WebKit and Safari
  21. The Economic Value of Rapid Response Time
  22. The Desktop Conundrum
  23. #davegoeswindows?
  24. Deploy a Password Protected Jekyll Site on Heroku with Dropbox
  25. Ol’ John Henry

2014 8

  1. COMIC: How Mobile Browsers Market Themselves
  2. COMIC: How Browsers Market Themselves
  3. Mental Adoption Process
  4. Web Archeology
  5. RWD Bloat Part II
  6. RWD Bloat
  7. Sharing Podcasts
  8. 2014: The year we all go 4K

2013 11

  1. Caption Everything
  2. Garbage in the Walls
  3. So I trolled The White House...
  4. A Renewed Perspective
  5. Ughck. Images.
  6. Introducing TimeJump
  7. Responsive Deliverables
  8. Ideas of March
  9. #Protip for Startups
  10. The A11Y Project
  11. 2013, the year the Mayans forgot.

2012 4

  1. Em-limited Content
  2. A brander newer blog
  3. Making Video.js Fluid for RWD
  4. Uncle Dave's Ol' Padded Box

2011 6

  1. Responsive Image Hierarchy
  2. Responsive Video Embeds with FitVids
  3. Tiny Apps on Tiny Devices
  4. Interaction
  5. Two-Tone Borders with CSS3
  6. AustinJS Lettering.js Presentation

2010 8

  1. 40 Things I Learned From Side Projects
  2. Lettering.JS
  3. Web Performant WordPress
  4. Fuck Yeah Mobile Web
  5. A Brand New Design
  6. Dribbble Wordpress Plugin
  7. Processor Fans Are A Part Of UX
  8. Audio, the silent browser killer

2009 5

  1. Announcing the ATX Web Show!
  2. NPR, NYTimes and the Future of News
  3. What I'd like to see from Lithium #li3
  4. Rabbithole Log #1
  5. Digg forsakes its first love.