41554 blogs · [ { "id": "01a0d783-d88f-72d9-873f-78ca1c9941ac", "title": "The absolute best AI tools to use in September 2026", "url": "https://cassidoo.co/post/best-ai-tools-sept-2026/", "published_at": "2026-09-17T22:55:14+00:00" }, { "id": "01a0b68b-4cd1-73b7-a689-f4b900468ac1", "title": "Cassidy Williams", "url": "https://cassidoo.co", "published_at": "2026-09-07T05:20:44+00:00" }, { "id": "01a07df2-31a6-7112-811e-5414fc9e5e21", "title": "RenderATL 2026 recap", "url": "https://cassidoo.co/post/renderatl-2026/", "published_at": "2026-08-23T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5414fd9c60e1", "title": "Customizing my Xteink firmware and wallpaper", "url": "https://cassidoo.co/post/xteink-customization/", "published_at": "2026-07-06T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5414fdd767b4", "title": "Whitespace in Astro 7.0", "url": "https://cassidoo.co/post/astro-7-whitespace/", "published_at": "2026-06-30T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5414fdf221a9", "title": "An animated radial gradient mask over text in CSS", "url": "https://cassidoo.co/post/radial-mask-text-css/", "published_at": "2026-06-28T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5414fec134f8", "title": "On the edge of burnout", "url": "https://cassidoo.co/post/edge-of-burnout/", "published_at": "2026-06-27T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5414fec9a6e8", "title": "KeyCon 2026 recap", "url": "https://cassidoo.co/post/keycon-2026/", "published_at": "2026-06-14T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5414ff6860ef", "title": "Microsoft Build 2026 recap", "url": "https://cassidoo.co/post/build-2026/", "published_at": "2026-06-10T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5414ffa772a9", "title": "A simple clustering algorithm for lists", "url": "https://cassidoo.co/post/clustering-tiles/", "published_at": "2026-05-24T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5414ffefc3a4", "title": "La Pedra Go Club in Barcelona", "url": "https://cassidoo.co/post/la-pedra-bcn/", "published_at": "2026-05-18T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415005c01b4", "title": "Shipping todometer, version 3!", "url": "https://cassidoo.co/post/todometer-v3/", "published_at": "2026-05-02T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541500c949d1", "title": "Codemotion Madrid 2026 recap", "url": "https://cassidoo.co/post/codemotion-madrid-2026/", "published_at": "2026-04-28T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541501788ad0", "title": "Connecting the Logitech MX Creative Console to Elgato Lights", "url": "https://cassidoo.co/post/logitech-elgato-holding-hands/", "published_at": "2026-04-13T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541501d49498", "title": "Deep Dish Swift 2026 recap", "url": "https://cassidoo.co/post/deepdishswift-2026/", "published_at": "2026-04-12T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150290b199", "title": "Speaking at TechCamp Korea 2026", "url": "https://cassidoo.co/post/techcamp-2026/", "published_at": "2026-04-10T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150294e11b", "title": "My rainbow sweater", "url": "https://cassidoo.co/post/rainbow-sweater/", "published_at": "2026-03-30T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541502d63e62", "title": "I got yet another digital typewriter: The BYOK", "url": "https://cassidoo.co/post/the-byok/", "published_at": "2026-03-27T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415033acff4", "title": "A history of styling choices leading to native CSS", "url": "https://cassidoo.co/post/css-todometer/", "published_at": "2026-03-25T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150363365b", "title": "Notes for my future self on how to set up a camera for streaming", "url": "https://cassidoo.co/post/set-up-a6400/", "published_at": "2026-03-19T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415038acf30", "title": "Making art with CSS gradients and corner-shape and skew, oh my", "url": "https://cassidoo.co/post/css-wavy-art/", "published_at": "2026-03-06T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541504446659", "title": "How passkeys work", "url": "https://cassidoo.co/post/passkeys/", "published_at": "2026-02-21T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541504a6c6ec", "title": "I am making videos again!", "url": "https://cassidoo.co/post/making-videos/", "published_at": "2026-02-19T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541505897807", "title": "Improving my newsletter's open rate the hard(er) way", "url": "https://cassidoo.co/post/do-not-scale-2/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541505e9af65", "title": "Making interesting borders with CSS corner-shape", "url": "https://cassidoo.co/post/css-corner-shape/", "published_at": "2026-01-28T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541505f11e4c", "title": "Remaking the Linux \"touch\" command in PowerShell", "url": "https://cassidoo.co/post/touch-on-ps/", "published_at": "2026-01-20T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541506836272", "title": "A fun trick for getting discovered by LLMs and AI tools", "url": "https://cassidoo.co/post/ai-llm-discoverability/", "published_at": "2026-01-19T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150757c6c9", "title": "Code Wave Build Log", "url": "https://cassidoo.co/post/code-wave-build-log/", "published_at": "2026-01-18T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415078f87cb", "title": "Appreciating Mary Cassatt now that I am a mom", "url": "https://cassidoo.co/post/mary-cassatt-and-babies/", "published_at": "2026-01-17T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541507f6c206", "title": "Do not give up your brain", "url": "https://cassidoo.co/post/good-brain/", "published_at": "2026-01-16T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541508a6e9b6", "title": "A career chat with students in the age of AI", "url": "https://cassidoo.co/post/career-chat-ai-networking/", "published_at": "2026-01-10T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415091eb118", "title": "Toodles, 2025", "url": "https://cassidoo.co/post/toodles-2025/", "published_at": "2025-12-31T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150952fa3f", "title": "Wrapping up Blogvent 2025", "url": "https://cassidoo.co/post/blogvent-wrap-up-2025/", "published_at": "2025-12-24T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150a0bd2cf", "title": "Making the \"End of Year Developer\" nature documentary", "url": "https://cassidoo.co/post/nature-doc-2025/", "published_at": "2025-12-23T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150a3791db", "title": "CSS for markdown blockquote attribution", "url": "https://cassidoo.co/post/css-quote-attr/", "published_at": "2025-12-22T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150a4287de", "title": "I like when apps are \"finished\"", "url": "https://cassidoo.co/post/finished-apps/", "published_at": "2025-12-21T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150ad7dbe6", "title": "I have become more of a writing utensil snob", "url": "https://cassidoo.co/post/writing-utensil-snob-part-2/", "published_at": "2025-12-20T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150b2970bc", "title": "Configure your repositories with .github", "url": "https://cassidoo.co/post/dot-github/", "published_at": "2025-12-19T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150b36693d", "title": "My inbox is so full", "url": "https://cassidoo.co/post/inbox-zero-in-my-dreams/", "published_at": "2025-12-18T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150b958f15", "title": "Things I would study more if I had time", "url": "https://cassidoo.co/post/what-i-want-to-study/", "published_at": "2025-12-17T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150c3c9e52", "title": "Coming up with blog topics", "url": "https://cassidoo.co/post/new-blog-topics/", "published_at": "2025-12-16T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150c6f34f2", "title": "Influencing without authority", "url": "https://cassidoo.co/post/influence-without-authority/", "published_at": "2025-12-15T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150d2d45c9", "title": "Trying out Ente for media backup", "url": "https://cassidoo.co/post/ente-backup/", "published_at": "2025-12-14T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150daefa13", "title": "Vibe coding is boring", "url": "https://cassidoo.co/post/vibe-coding-yawn/", "published_at": "2025-12-13T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150e15e1c3", "title": "Podcasts I'm listening to in 2025", "url": "https://cassidoo.co/post/podcasts-2025/", "published_at": "2025-12-12T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150e27d9f2", "title": "The Abilene Paradox", "url": "https://cassidoo.co/post/abilene-paradox/", "published_at": "2025-12-11T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150f04d978", "title": "Food I recommend in Chicago in 2025", "url": "https://cassidoo.co/post/chicago-food-2025/", "published_at": "2025-12-10T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150f3b0678", "title": "Pausing a CSS animation with getAnimations()", "url": "https://cassidoo.co/post/pause-css-animation/", "published_at": "2025-12-09T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54150fcacb97", "title": "Sewing an e-reader case", "url": "https://cassidoo.co/post/sewing-e-reader/", "published_at": "2025-12-08T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151013c431", "title": "The ABCD framework for feedback", "url": "https://cassidoo.co/post/abcd-feedback/", "published_at": "2025-12-07T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541510db4f4f", "title": "Lasagna and a root beer float", "url": "https://cassidoo.co/post/lasagna-root-beer-float/", "published_at": "2025-12-06T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415040428e7", "title": "Goodbye to an 11-year-old Issue", "url": "https://cassidoo.co/post/eleven-year-issue/", "published_at": "2025-12-05T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151171ee0b", "title": "The what, how, and why of CSS clamp()", "url": "https://cassidoo.co/post/css-clamp/", "published_at": "2025-12-04T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151183fc51", "title": "Fix your upgrades and migrations with Codemods", "url": "https://cassidoo.co/post/codemods/", "published_at": "2025-12-03T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415125321ee", "title": "Change commit timestamps in Git", "url": "https://cassidoo.co/post/change-git-timestamp/", "published_at": "2025-12-02T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151339e8eb", "title": "Automatically mark pull requests and issues as stale with GitHub Actions", "url": "https://cassidoo.co/post/stale-prs-issues/", "published_at": "2025-12-01T13:59:01+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415134a2445", "title": "A pretty good email scam", "url": "https://cassidoo.co/post/email-settings-scam/", "published_at": "2025-11-30T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415142377a4", "title": "How reducers work", "url": "https://cassidoo.co/post/how-reducers-work/", "published_at": "2025-11-23T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415145fafed", "title": "Non-determinism and ownership", "url": "https://cassidoo.co/post/non-determinism-ownership/", "published_at": "2025-11-21T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415148ebcd4", "title": "A poem delivered by my 2.5 year old that encapsulates parenthood", "url": "https://cassidoo.co/post/poem-by-nadia-2025/", "published_at": "2025-11-09T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541514bd6878", "title": "I am back at work and it feels weird!", "url": "https://cassidoo.co/post/back-at-work-2025/", "published_at": "2025-11-05T21:25:26+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151593d135", "title": "A moose playing Go in a park while drinking boba", "url": "https://cassidoo.co/post/moose-go-park-boba-ai/", "published_at": "2025-10-04T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415160cdae7", "title": "Using Notebook Navigator and Cupertino in Obsidian", "url": "https://cassidoo.co/post/notebook-nav-cupertino/", "published_at": "2025-09-27T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415168acd20", "title": "2000 Poops", "url": "https://cassidoo.co/post/two-thousand-poops/", "published_at": "2025-09-21T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151739c748", "title": "Questions to ask when you think you need to finish something", "url": "https://cassidoo.co/post/questions-when-i-need-to-finish-something/", "published_at": "2025-09-18T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151819972e", "title": "Playing with Fliiip Book", "url": "https://cassidoo.co/post/fliiip-book/", "published_at": "2025-09-16T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151907add8", "title": "I made a tree visualizer", "url": "https://cassidoo.co/post/tree-visualizer/", "published_at": "2025-09-14T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151976e82d", "title": "This is probably the most I will ever pretend", "url": "https://cassidoo.co/post/play-pretend/", "published_at": "2025-08-30T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541519f53b2c", "title": "Ductts Build Log", "url": "https://cassidoo.co/post/ductts-build-log/", "published_at": "2025-08-21T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151a740b6d", "title": "Making a customizable wooden phone for my toddler", "url": "https://cassidoo.co/post/wooden-phone-for-babies/", "published_at": "2025-08-04T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151b19e054", "title": "Making a faded text effect in (mostly) CSS", "url": "https://cassidoo.co/post/faded-text/", "published_at": "2025-07-29T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151b957e45", "title": "That Windy City Keeb Meet 2025 recap", "url": "https://cassidoo.co/post/chimk-2025/", "published_at": "2025-07-27T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151c8c257e", "title": "Have GitHub Copilot see your diff (and other cool tricks)", "url": "https://cassidoo.co/post/gh-copilot-diff/", "published_at": "2025-07-22T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151c9cfc41", "title": "Using personal instructions in GitHub Copilot Chat", "url": "https://cassidoo.co/post/gh-copilot-instructions/", "published_at": "2025-07-17T18:47:27+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151cc2c35e", "title": "Tools using tools", "url": "https://cassidoo.co/post/tools-using-tools/", "published_at": "2025-07-13T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151d163c20", "title": "I (don't?) want to say yes to everything", "url": "https://cassidoo.co/post/saying-yes-or-no/", "published_at": "2025-06-25T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151d5b021b", "title": "Generating open graph images in Astro", "url": "https://cassidoo.co/post/og-image-gen-astro/", "published_at": "2025-06-12T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151e32a6a3", "title": "Making Puppeteer work at build time on Netlify", "url": "https://cassidoo.co/post/puppeteer-netlify-chromium/", "published_at": "2025-06-11T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151ef476e9", "title": "Building for a physical scavenger hunt with Astro, Tally, and Netlify", "url": "https://cassidoo.co/post/alinea-20-hunt/", "published_at": "2025-06-09T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54151f9b6521", "title": "Baby sayings", "url": "https://cassidoo.co/post/baby-sayings/", "published_at": "2025-06-07T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415208ead7e", "title": "PocketCal Build Log", "url": "https://cassidoo.co/post/pocketcal-build-log/", "published_at": "2025-06-02T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541520d362e9", "title": "What does it mean to flatten an array?", "url": "https://cassidoo.co/post/flatten-an-array/", "published_at": "2025-06-01T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541521634554", "title": "Styling the icon for HTML date and time types", "url": "https://cassidoo.co/post/input-type-date/", "published_at": "2025-05-21T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541522479517", "title": "My second c-section experience", "url": "https://cassidoo.co/post/c-section-2/", "published_at": "2025-05-07T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54152298cf98", "title": "End of an era with Stack Overflow", "url": "https://cassidoo.co/post/bye-bye-stack/", "published_at": "2025-04-14T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54152303d0e9", "title": "Keybindings I use in VS Code", "url": "https://cassidoo.co/post/vscode-keybindings/", "published_at": "2025-04-13T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415239c1bda", "title": "Make your images in markdown on GitHub adjust for Dark Mode and Light Mode", "url": "https://cassidoo.co/post/md-dark-light-imgs/", "published_at": "2025-04-10T04:24:04+00:00" }, { "id": "01a07df2-31a6-7112-811e-541523d8ff2a", "title": "Things I learned while upgrading my iPad", "url": "https://cassidoo.co/post/upgrading-my-ipad-2025/", "published_at": "2025-04-07T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54152429df55", "title": "I don't know what MCP is and at this point I'm too afraid to ask", "url": "https://cassidoo.co/post/what-is-mcp/", "published_at": "2025-04-04T16:37:50+00:00" }, { "id": "01a07df2-31a6-7112-811e-541524913def", "title": "Geek mama... saying no... part 2", "url": "https://cassidoo.co/post/mama-says-no-again/", "published_at": "2025-03-30T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415255678e9", "title": "Create an HTML dialog when you click an image", "url": "https://cassidoo.co/post/html-dialog-on-image-click/", "published_at": "2025-03-21T20:13:30+00:00" }, { "id": "01a07df2-31a6-7112-811e-541526359450", "title": "I am going to have a second baby and my brain is spinning", "url": "https://cassidoo.co/post/second-baby-coming-soon/", "published_at": "2025-03-16T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-54152640b9ec", "title": "We should have more friction in our lives", "url": "https://cassidoo.co/post/introduce-friction/", "published_at": "2025-03-15T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415269744d8", "title": "Think less, ship more", "url": "https://cassidoo.co/post/think-less/", "published_at": "2025-02-26T20:19:40+00:00" }, { "id": "01a07df2-31a6-7112-811e-541527645a5e", "title": "Debugging my Micro Journal", "url": "https://cassidoo.co/post/mj-battery-woes/", "published_at": "2025-02-16T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541527c49896", "title": "Convert a video from dark mode to light mode with FFmpeg!", "url": "https://cassidoo.co/post/ffmpeg-dark-light/", "published_at": "2025-02-13T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541527d0579d", "title": "Re-ordering Git commits", "url": "https://cassidoo.co/post/rebase-to-reorder/", "published_at": "2025-02-01T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-5415283573f7", "title": "A couple CSS tricks for HTML Dialog elements", "url": "https://cassidoo.co/post/css-for-dialogs/", "published_at": "2025-01-09T00:00:00+00:00" }, { "id": "01a07df2-31a6-7112-811e-541528771736", "title": "Making my startup come back to life", "url": "https://cassidoo.co/post/brainstory-liiiives/", "published_at": "2025-01-08T20:29:33+00:00" }, { "id": "01a07df2-31a6-7112-811e-541528bc4cde", "title": "How to use GitHub Copilot Edits", "url": "https://cassidoo.co/post/github-copilot-edits/", "published_at": "2025-01-06T00:00:00+00:00" } ] posts Claim your blog
Back to Cassidy Williams
Blog · corpus.blog/blogs/cassidoo.co/posts

Cassidy Williams

cassidoo.co

2026

2025