The Curious Engineer

All blogs / JavaScript / TypeScript

Cassidy Williams

cassidoo.co

I'm Cassidy Williams, a software engineer, mom, and overall nerd in Chicago. I write about tech, projects, and whatever else I'm thinking about!

JavaScript / TypeScriptFrontend / CSS / browsersGeneral

Posts
315 from 6 Jan 2009 to 15 Oct 2026
Posting
weekly (62 in the last year)
Kind
personal blog
Feed
https://cassidoo.co/rss.xml

2026 32

  1. Building a static newsletter archive
  2. Accessibility and the new model of the internet
  3. The absolute best AI tools to use in September 2026
  4. RenderATL 2026 recap
  5. Customizing my Xteink firmware and wallpaper
  6. Whitespace in Astro 7.0
  7. An animated radial gradient mask over text in CSS
  8. On the edge of burnout
  9. KeyCon 2026 recap
  10. Microsoft Build 2026 recap
  11. A simple clustering algorithm for lists
  12. La Pedra Go Club in Barcelona
  13. Shipping todometer, version 3!
  14. Codemotion Madrid 2026 recap
  15. Connecting the Logitech MX Creative Console to Elgato Lights
  16. Deep Dish Swift 2026 recap
  17. Speaking at TechCamp Korea 2026
  18. My rainbow sweater
  19. I got yet another digital typewriter: The BYOK
  20. A history of styling choices leading to native CSS
  21. Notes for my future self on how to set up a camera for streaming
  22. Making art with CSS gradients and corner-shape and skew, oh my
  23. How passkeys work
  24. I am making videos again!
  25. Improving my newsletter's open rate the hard(er) way
  26. Making interesting borders with CSS corner-shape
  27. Remaking the Linux "touch" command in PowerShell
  28. A fun trick for getting discovered by LLMs and AI tools
  29. Code Wave Build Log
  30. Appreciating Mary Cassatt now that I am a mom
  31. Do not give up your brain
  32. A career chat with students in the age of AI

2025 69

  1. Toodles, 2025
  2. Wrapping up Blogvent 2025
  3. Making the "End of Year Developer" nature documentary
  4. CSS for markdown blockquote attribution
  5. I like when apps are "finished"
  6. I have become more of a writing utensil snob
  7. Configure your repositories with .github
  8. My inbox is so full
  9. Things I would study more if I had time
  10. Coming up with blog topics
  11. Influencing without authority
  12. Trying out Ente for media backup
  13. Vibe coding is boring
  14. Podcasts I'm listening to in 2025
  15. The Abilene Paradox
  16. Food I recommend in Chicago in 2025
  17. Pausing a CSS animation with getAnimations()
  18. Sewing an e-reader case
  19. The ABCD framework for feedback
  20. Lasagna and a root beer float
  21. Goodbye to an 11-year-old Issue
  22. The what, how, and why of CSS clamp()
  23. Fix your upgrades and migrations with Codemods
  24. Change commit timestamps in Git
  25. Automatically mark pull requests and issues as stale with GitHub Actions
  26. A pretty good email scam
  27. How reducers work
  28. Non-determinism and ownership
  29. A poem delivered by my 2.5 year old that encapsulates parenthood
  30. I am back at work and it feels weird!
  31. A moose playing Go in a park while drinking boba
  32. Using Notebook Navigator and Cupertino in Obsidian
  33. 2000 Poops
  34. Questions to ask when you think you need to finish something
  35. Playing with Fliiip Book
  36. I made a tree visualizer
  37. This is probably the most I will ever pretend
  38. Ductts Build Log
  39. Making a customizable wooden phone for my toddler
  40. Making a faded text effect in (mostly) CSS
  41. That Windy City Keeb Meet 2025 recap
  42. Have GitHub Copilot see your diff (and other cool tricks)
  43. Using personal instructions in GitHub Copilot Chat
  44. Tools using tools
  45. I (don't?) want to say yes to everything
  46. Generating open graph images in Astro
  47. Making Puppeteer work at build time on Netlify
  48. Building for a physical scavenger hunt with Astro, Tally, and Netlify
  49. Baby sayings
  50. PocketCal Build Log
  51. What does it mean to flatten an array?
  52. Styling the icon for HTML date and time types
  53. My second c-section experience
  54. End of an era with Stack Overflow
  55. Keybindings I use in VS Code
  56. Make your images in markdown on GitHub adjust for Dark Mode and Light Mode
  57. Things I learned while upgrading my iPad
  58. I don't know what MCP is and at this point I'm too afraid to ask
  59. Geek mama... saying no... part 2
  60. Create an HTML dialog when you click an image
  61. I am going to have a second baby and my brain is spinning
  62. We should have more friction in our lives
  63. Think less, ship more
  64. Debugging my Micro Journal
  65. Convert a video from dark mode to light mode with FFmpeg!
  66. Re-ordering Git commits
  67. A couple CSS tricks for HTML Dialog elements
  68. Making my startup come back to life
  69. How to use GitHub Copilot Edits

2024 69

  1. Adios, 2024
  2. The beautiful sentence that is the web
  3. Wrapping up Blogvent 2024
  4. I really love entering raffles
  5. How I use Obsidian Dataview
  6. How I use Obsidian Templater
  7. It would be cool for 2024 to just calm down
  8. Browser extensions I shipped in 2024
  9. How I approach humor
  10. I have become a minor writing utensil snob
  11. Introduce yourself to your remote team
  12. How to make your RSS feed pretty
  13. How to switch to Astro Content Collections
  14. Updating my blog to use Astro Collections
  15. Choose kindness over pile-ons
  16. The developer relations pendulum swings again
  17. Noticing the little things
  18. Actively learning languages
  19. Tracking side project income
  20. Doing things that don't scale is about finding value
  21. 33 of my own joke concepts that have never seen the light of day
  22. Ship it anyway
  23. Writing good words for tech folks
  24. Combining tools for fun and profit
  25. The what and the what now: note-taking
  26. Fighting open source spam with interaction limits
  27. Being forced to upgrade
  28. Haunted by my own projects
  29. Two months at GitHub
  30. I fell asleep in a driverless car
  31. A note on the future of Jumblie
  32. Sleep is the most magical thing in the world
  33. A Quick Guide for Building your own GitHub Copilot Extension
  34. Side quests
  35. Time containers
  36. Voice lessons taught me that I should be... true to myself
  37. Making a simple React microphone component
  38. Why JavaScript variables don't always update
  39. Layering CSS gradients
  40. Traveling to technical events: A guide
  41. Analog girly
  42. Building the Micro Journal
  43. Getting paid is weird and sometimes hard
  44. Actually try on your job applications
  45. The Productivity apps I use in 2024
  46. Figma Config recap
  47. Being funemployed, and all that jazz
  48. Greetings, future billionaires
  49. The Merge in Berlin recap
  50. Nice keyboards make me want to write blogs
  51. I rewrote my blog! And website! They are one!
  52. Front-end Design Conference recap
  53. Seattle and the internet
  54. Non-traditional push presents
  55. I love reading fantasy again
  56. Building W-9 Crafter
  57. Styling a CSS pseudo-element with JavaScript
  58. Jumblie has a database!
  59. Tips for posting on LinkedIn
  60. How to test a browser extension locally
  61. Sorting Git branches
  62. Use CSS accent-color to style your inputs
  63. HTML "self-awareness" with sibling indexing in JavaScript
  64. Base CSS for your text-based pages
  65. Kind of annoyed at React
  66. I miss human curation
  67. Jumblie 100
  68. Experimenting with AI voice
  69. Cassidy Williams... who is she

2023 33

  1. Buh bye, 2023
  2. Stock options, vesting, and exercising, oh my
  3. Publishing to my blog from Obsidian
  4. Ideal fishing spots
  5. Geek mama... saying no
  6. Making a single line break in markdown
  7. Cassidy's Gift Guide 2023
  8. Jumblie Build Log
  9. A use-case for CSS :has()
  10. My first go tournament
  11. Adding co-authors to TinaCMS's Git commits
  12. How and when to use keys in React
  13. Thirteen Potions Build Log
  14. Trying out TinaCMS
  15. Calling an imported API at runtime in Astro
  16. Co-authoring Git commits
  17. Why I like Astro
  18. Maternity TV
  19. Dear Cassidy of 2 months ago
  20. Open standards, trust, and Google
  21. Removing trailing space underlines from groups of anchor tags
  22. Turning todos into tadas
  23. My c-section experience
  24. Three ways to set headers with Netlify and Astro
  25. The Productivity apps I use in 2023
  26. Memorize quotes
  27. I made a bookmark out of stickers
  28. When useEffect runs
  29. Quirky local delights
  30. Setting up Netlify Redirects with Astro
  31. Loving and hating the streak
  32. The small, private wins
  33. Importing SVG files as React components with Vite

2022 17

  1. See ya, 2022
  2. My language brain is... broken?
  3. Two(ish) months at Contenda
  4. Passing Markdown components to React or Preact in Astro
  5. Managing knowledge on a team
  6. Hello, world
  7. Saying goodbye to my crappy vision
  8. Moose facts
  9. How to break the cycle of tech debt
  10. Customizing my Zsh Prompt
  11. Renaming a folder on the GitHub website
  12. Make line breaks work when you render text in a React or Vue component
  13. Use Unicode characters for bullet points in CSS using ::marker
  14. Being available: The secret to great leadership
  15. The Productivity apps I use in 2022
  16. Adding a lang attribute to your Next.js site
  17. Do successful products prioritize familiarity over uniqueness?

2021 5

  1. Build wicked fast sites with Astro: An Introduction
  2. React 18 Alpha is out! Now what?
  3. Shallow Routing in Next.js
  4. Pursuing Passive Learning
  5. Making a virtual credits sequence for your video calls with OBS and CodePen

2020 21

  1. An Incredibly Serious Discussion about Next.js at Reactathon
  2. Enabling AMP in your Next.js projects
  3. Adding Babel presets and plugins in Next.js
  4. React Children: The misunderstood prop
  5. Query an API at both build time and runtime with Next.js
  6. How to turn off telemetry in Next.js
  7. Add Web Monetization to your sites with Snippet Injection
  8. Logging in Next.js
  9. Deploy from CodePen to Netlify in less than 30 seconds
  10. React Strict Mode in Next.js
  11. Environment variables in Next.js and Netlify
  12. Global Styles in Next.js
  13. Making a custom 404 page in Next.js
  14. Absolute Imports in Next.js
  15. Why you should code together: Mob Programming FAQs
  16. Building a custom React media query hook for more responsive apps
  17. "Escaping" Next.js to access the browser
  18. What is React Fast Refresh?
  19. Next.js: Should I use SSR or SSG?
  20. Using React Context for state management in Next.js
  21. Avoiding burnout as an ambitious developer

2019 7

  1. Apollo Mission - The Pros and Cons of Being an Early Adopter of New Technology
  2. Giving people what they do not need: mild panic
  3. I'm going to write for Stack Overflow!
  4. How I built my CSS Rice Ball Dessert
  5. I spoke at DinosaurJS and React Loop last week
  6. How I built my (mostly) CSS Light Switch Toggle
  7. Leaky Bucket

2018 2

  1. I made a game called Flapjack Fwop
  2. Follow your dreams (literally): How I designed and launched the Official Scrabble Keyboard

2017 2

  1. Building todometer: a meter-based to-do list
  2. Building My S60-X Keyboard

2016 6

  1. L4 Digital: First Impressions
  2. Writing Practice: The Agua Caliente Airport
  3. Subconscious Learning
  4. Pure CSS3 Text Carousel
  5. Closures in JavaScript
  6. Messing with Sketch Club

2015 9

  1. 5 applications of linear regression that will drive him crazy
  2. Adding Keyboard Shortcuts to your React Apps
  3. Making the Whitney Houston API
  4. Picking your brain: Cold call email etiquette
  5. One year at Venmo
  6. A Brief History of the PNG
  7. The CSS Image Values Spec
  8. Finding a Mentor
  9. The positives coming from the negatives

2014 14

  1. A Weekend at BattleHack Boston
  2. My last days at ISU
  3. How to ask for help
  4. 10 Tips for Successful Public Speaking
  5. The laptop you need for college
  6. HackISU Hackathon!!
  7. How to Ace an Interview
  8. Things you should have on your LinkedIn profile
  9. What is Computer Science ACTUALLY like?
  10. Feedback is awesome
  11. My Talk at TEDxDesMoines
  12. My "romantic" Valentine's Day plans!
  13. HTML+CSS Tutorial, Part 1
  14. HTML+CSS Tutorial, Part 2

2013 16

  1. Here come the 2013 Mashups!
  2. Inspirational quotes to get you through the day
  3. I am better than you at everything
  4. Things you should have on your LinkedIn profile
  5. Finding your dream major in college
  6. Crushing Procrastination in 3 Steps
  7. Design Your First iPhone App
  8. Tips for remembering names
  9. 5 Questions to Ask Your Boss
  10. Networking as a college student
  11. A Weekend at PennApps
  12. Crushing the Impostor Syndrome
  13. Startup Weekend Ames
  14. Happy Pi Day!
  15. I went to the White House!
  16. What's a house that's white in Washington D.C.?

2012 5

  1. Grace Hopper in Baltimore!
  2. Facebook's 2012 Summer of Hack
  3. This is how a rock star feels
  4. How my big bod broke a bus
  5. I can't see!

2011 2

  1. System.out.print("My Major");
  2. Just Dancing.

2010 3

  1. Boo yah.
  2. The T in Often
  3. Amazing and Free Software

2009 3

  1. The Wrist Keyboard
  2. Hum de dum
  3. Hello blog