56,966 blogs · [ { "id": "01a07df3-be86-73ab-9ede-4173d1bbe5d9", "title": "ProMe, a TTRPG Companion App", "url": "https://kittygiraudel.com/2026/06/29/prome-a-ttrpg-companion-app/", "published_at": "2026-06-29T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d2398138", "title": "Typed Polymorphic React Component", "url": "https://kittygiraudel.com/2026/06/19/typed-polymorphic-react-component/", "published_at": "2026-06-19T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d253157d", "title": "Retrospective on My Job Search", "url": "https://kittygiraudel.com/2026/05/25/retrospective-on-my-job-search/", "published_at": "2026-05-25T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d27f7600", "title": "Styles in Eleventy (Again)", "url": "https://kittygiraudel.com/2026/05/11/styles-in-11ty-again/", "published_at": "2026-05-11T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d2a866dc", "title": "On Take-Home Coding Assignments", "url": "https://kittygiraudel.com/2026/05/08/on-take-home-coding-assignments/", "published_at": "2026-05-08T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d2bf1f72", "title": "Accessible Blog Search with Eleventy", "url": "https://kittygiraudel.com/2026/05/07/blog-search-with-11ty/", "published_at": "2026-05-07T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d32b2464", "title": "Optimizing Images with Eleventy on Netlify", "url": "https://kittygiraudel.com/2026/05/05/optimizing-images-with-11ty-on-netlify/", "published_at": "2026-05-05T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d3c0c7cd", "title": "Next.js Link as a Button", "url": "https://kittygiraudel.com/2026/05/02/nextjs-link-as-a-button/", "published_at": "2026-05-02T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d4869e89", "title": "Preserving DOM Changes Across Live Reloads", "url": "https://kittygiraudel.com/2026/05/01/preserving-dom-changes-across-live-reloads/", "published_at": "2026-05-01T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d5483bc8", "title": "Feature Toggles with Eleventy", "url": "https://kittygiraudel.com/2026/04/30/feature-toggles-with-11ty/", "published_at": "2026-04-30T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d5625d57", "title": "You Cannot Spell “Pain” Without AI", "url": "https://kittygiraudel.com/2026/04/29/you-cannot-spell-pain-without-ai/", "published_at": "2026-04-29T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d5723715", "title": "Spring Cleaning", "url": "https://kittygiraudel.com/2026/04/27/spring-cleaning/", "published_at": "2026-04-27T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d5e80099", "title": "Content Negotiation on Netlify", "url": "https://kittygiraudel.com/2026/04/20/content-negotiation-on-netlify/", "published_at": "2026-04-20T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d692842e", "title": "Play Sound When Claude Idles (on macOS)", "url": "https://kittygiraudel.com/2026/04/13/play-sound-on-claude-idle/", "published_at": "2026-04-13T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d6a98268", "title": "An Interactive Cover Component", "url": "https://kittygiraudel.com/2026/04/09/an-interactive-cover-component/", "published_at": "2026-04-09T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d6b98957", "title": "Heading Anchors With Eleventy", "url": "https://kittygiraudel.com/2026/03/21/heading-anchors-with-11ty/", "published_at": "2026-03-21T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d6e7bfa7", "title": "Merging GitHub Repositories", "url": "https://kittygiraudel.com/2026/03/20/merging-github-repositories/", "published_at": "2026-03-20T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d7667e0b", "title": "Highlighting Footnotes", "url": "https://kittygiraudel.com/2026/03/18/highlighting-footnotes/", "published_at": "2026-03-18T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d7ae918f", "title": "Beautiful CLI Prompt With Starship", "url": "https://kittygiraudel.com/2026/03/13/beautiful-cli-prompt-with-starship/", "published_at": "2026-03-13T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d7cb58e0", "title": "Adding Tests to an Eleventy Site", "url": "https://kittygiraudel.com/2026/03/12/adding-tests-to-an-eleventy-site/", "published_at": "2026-03-12T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d844adc0", "title": "Serving Markdown to LLMs With Eleventy", "url": "https://kittygiraudel.com/2026/03/11/serving-markdown-to-llms-with-11ty/", "published_at": "2026-03-11T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d9373b7e", "title": "No More Carbon", "url": "https://kittygiraudel.com/2026/03/10/no-more-carbon/", "published_at": "2026-03-10T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d97bc5dc", "title": "On Chardet, AI & OSS Licensing", "url": "https://kittygiraudel.com/2026/03/06/on-chardet-ai-and-oss-licensing/", "published_at": "2026-03-06T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173d9e234a5", "title": "Folded Corner With CSS", "url": "https://kittygiraudel.com/2026/03/05/folded-corner-with-css/", "published_at": "2026-03-05T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173da91ce07", "title": "Automatic Table of Contents With Eleventy", "url": "https://kittygiraudel.com/2026/03/04/automatic-toc-with-11ty/", "published_at": "2026-03-04T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173dac9d314", "title": "Dynamic Profile README on GitHub", "url": "https://kittygiraudel.com/2026/03/03/dynamic-profile-readme-on-github/", "published_at": "2026-03-03T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173db83adbc", "title": "Stats Page With Eleventy", "url": "https://kittygiraudel.com/2026/03/02/stats-page-with-11ty/", "published_at": "2026-03-02T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173dc247ed4", "title": "Tag Pages With Eleventy", "url": "https://kittygiraudel.com/2026/03/01/tag-pages-with-eleventy/", "published_at": "2026-03-01T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173dcd4691f", "title": "Injecting Element in Liquid Content", "url": "https://kittygiraudel.com/2026/02/27/injecting-element-in-liquid-content/", "published_at": "2026-02-27T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173dd16238e", "title": "Nerdy Design Details", "url": "https://kittygiraudel.com/2026/02/26/nerdy-design-details/", "published_at": "2026-02-26T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173ddb9736a", "title": "Six Months of Rust", "url": "https://kittygiraudel.com/2026/02/25/six-months-of-rust/", "published_at": "2026-02-25T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173deafd0d8", "title": "My Journey Writing a Watchdog Script", "url": "https://kittygiraudel.com/2026/02/09/rust-watchdog/", "published_at": "2026-02-09T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173df0cb449", "title": "Cursor for UI Work", "url": "https://kittygiraudel.com/2026/02/03/cursor-for-ui-work/", "published_at": "2026-02-03T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173dfa9bb8c", "title": "Fun Shadow Coding Challenge", "url": "https://kittygiraudel.com/2026/02/01/fun-shadow-coding-challenge/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e035149d", "title": "2025 in Review", "url": "https://kittygiraudel.com/2025/12/31/2025-in-review/", "published_at": "2025-12-31T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e10111e8", "title": "2024 in Review", "url": "https://kittygiraudel.com/2024/12/31/2024-in-review/", "published_at": "2024-12-31T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e186c8cb", "title": "Feature Toggles With Webpack", "url": "https://kittygiraudel.com/2024/07/22/feature-toggles-with-webpack/", "published_at": "2024-07-22T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e1ab7525", "title": "From ESLint & Prettier to Biome", "url": "https://kittygiraudel.com/2024/06/01/from-eslint-and-prettier-to-biome/", "published_at": "2024-06-01T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e27d10ed", "title": "On Disabled & ARIA-Disabled Attributes", "url": "https://kittygiraudel.com/2024/03/29/on-disabled-and-aria-disabled-attributes/", "published_at": "2024-03-29T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e366f0a3", "title": "CSS-Only Bottom-Anchored Scrolling Area", "url": "https://kittygiraudel.com/2024/02/26/css-only-bottom-anchored-scrolling-area/", "published_at": "2024-02-26T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e39df2ef", "title": "2D-Grid Helpers", "url": "https://kittygiraudel.com/2024/01/01/2D-grid-helpers/", "published_at": "2024-01-01T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e3e31348", "title": "2023 in Review", "url": "https://kittygiraudel.com/2023/12/29/2023-in-review/", "published_at": "2023-12-29T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e4342e12", "title": "Creative Use of CSS Gradients", "url": "https://kittygiraudel.com/2023/11/27/creative-use-of-css-gradients/", "published_at": "2023-11-27T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e4d5bf05", "title": "Testing Skip Links With Cypress", "url": "https://kittygiraudel.com/2023/01/31/testing-skip-links-with-cypress/", "published_at": "2023-01-31T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e4df7a42", "title": "Thoughts on Sanity Studio v3", "url": "https://kittygiraudel.com/2023/01/22/thoughts-on-sanity-v3/", "published_at": "2023-01-22T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e53cde7f", "title": "Parallel Tests With GitHub Actions", "url": "https://kittygiraudel.com/2023/01/01/parallel-tests-with-github-actions/", "published_at": "2023-01-01T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e550a8ef", "title": "2022 in Review", "url": "https://kittygiraudel.com/2022/12/28/2022-in-review/", "published_at": "2022-12-28T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e5b370b6", "title": "Reverse-Engineering an Aoc Problem", "url": "https://kittygiraudel.com/2022/12/21/reverse-engineering-an-aoc-problem/", "published_at": "2022-12-21T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e5f03742", "title": "Cleaning a Repo from Sensitive Info", "url": "https://kittygiraudel.com/2022/12/10/cleaning-a-repo-from-sensitive-info/", "published_at": "2022-12-10T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e5f8ed16", "title": "Making Sense of Zsh", "url": "https://kittygiraudel.com/2022/10/29/making-sense-of-zsh/", "published_at": "2022-10-29T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e667c7f6", "title": "Templating in HTML", "url": "https://kittygiraudel.com/2022/09/30/templating-in-html/", "published_at": "2022-09-30T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e6f9afed", "title": "Dominant Hand Respecting Design", "url": "https://kittygiraudel.com/2022/09/14/dominant-hand-respecting-design/", "published_at": "2022-09-14T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e78639ba", "title": "A Content Warning Component", "url": "https://kittygiraudel.com/2022/09/04/a-content-warning-component/", "published_at": "2022-09-04T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e7e270a2", "title": "Backup Your Sanity Dataset With GitHub Actions", "url": "https://kittygiraudel.com/2022/08/09/backup-your-sanity-dataset-with-github-actions/", "published_at": "2022-08-09T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e895dd87", "title": "The Required Fault in Our Stars", "url": "https://kittygiraudel.com/2022/08/05/the-required-fault-in-our-stars/", "published_at": "2022-08-05T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e91568fb", "title": "International Content With Sanity Portable Text", "url": "https://kittygiraudel.com/2022/07/25/international-content-with-sanity-portable-text/", "published_at": "2022-07-25T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173e94c17c9", "title": "Help Me Help You: a Guide to Asking for Help", "url": "https://kittygiraudel.com/2022/07/15/a-guide-to-asking-for-help/", "published_at": "2022-07-15T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173ea1b09ea", "title": "Simple Access Management With Sanity", "url": "https://kittygiraudel.com/2022/05/21/simple-access-management-with-sanity/", "published_at": "2022-05-21T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173eaf43d47", "title": "Webpack Aliases With Sanity", "url": "https://kittygiraudel.com/2022/05/20/webpack-aliases-with-sanity/", "published_at": "2022-05-20T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173eb3f8557", "title": "Table of Contents With Sanity Portable Text", "url": "https://kittygiraudel.com/2022/05/19/table-of-contents-with-sanity-portable-text/", "published_at": "2022-05-19T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173eb84c95e", "title": "Rate-Limit Next.js API Routes", "url": "https://kittygiraudel.com/2022/05/16/rate-limit-nextjs-api-routes/", "published_at": "2022-05-16T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173ec770210", "title": "Accessible Cards", "url": "https://kittygiraudel.com/2022/04/02/accessible-cards/", "published_at": "2022-04-02T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173ed748194", "title": "Hiring at Gorillas", "url": "https://kittygiraudel.com/2022/02/16/hiring-at-gorillas/", "published_at": "2022-02-16T00:00:00+00:00" }, { "id": "01a07df3-be86-73ab-9ede-4173ed9e0aac", "title": "Circular Array in JavaScript", "url": "https://kittygiraudel.com/2022/02/01/circular-array-in-js/", "published_at": "2022-02-01T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500308edc9", "title": "Exploiting JavaScript Quirks for Fun & Profit", "url": "https://kittygiraudel.com/2022/01/21/exploiting-javascript-quirks-for-fun-and-profit/", "published_at": "2022-01-21T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-1750035ac792", "title": "Accessibility and Developer Experience", "url": "https://developerexperience.buzzsprout.com/1806381/9919419-accessibility-and-developer-experience", "published_at": "2022-01-20T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500392d5a7", "title": "30 Frontend Tips", "url": "https://kittygiraudel.com/2022/01/04/30-frontend-tips/", "published_at": "2022-01-04T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-1750046359dd", "title": "2021 in Review", "url": "https://kittygiraudel.com/2021/12/27/2021-in-review/", "published_at": "2021-12-27T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-175004983adb", "title": "Can We Say “Disabled”?", "url": "https://kittygiraudel.com/2021/11/12/can-we-say-disabled/", "published_at": "2021-11-12T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-1750051e975b", "title": "Understanding the Gender Spectrum", "url": "https://kittygiraudel.com/2021/10/08/understanding-the-gender-spectrum/", "published_at": "2021-10-08T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-175005e9f5bb", "title": "From Create-React-App to Next", "url": "https://kittygiraudel.com/2021/08/24/from-cra-to-next/", "published_at": "2021-08-24T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-175006e26a65", "title": "Shadow Roots & Inheritance", "url": "https://kittygiraudel.com/2021/08/23/shadow-roots-and-inheritance/", "published_at": "2021-08-23T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-175007dbab19", "title": "Accessibility from the Ground Up", "url": "https://kittygiraudel.com/2021/08/20/accessibility-from-the-ground-up/", "published_at": "2021-08-20T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500878508e", "title": "Responsible Markdown in Next.js", "url": "https://css-tricks.com/responsible-markdown-in-next-js/", "published_at": "2021-08-10T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-1750087b0518", "title": "Creating an Accessible Dialog from Scratch", "url": "https://www.smashingmagazine.com/2021/07/accessible-dialog-from-scratch/", "published_at": "2021-07-28T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-175008afafe5", "title": "A Micro-Client for Sanity", "url": "https://kittygiraudel.com/2021/07/16/a-micro-client-for-sanity/", "published_at": "2021-07-16T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-175008f208c0", "title": "Resolving Webpack Aliases in Node", "url": "https://kittygiraudel.com/2021/06/04/resolving-webpack-aliases-in-node/", "published_at": "2021-06-04T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-1750098598bd", "title": "Slack Guidelines", "url": "https://kittygiraudel.com/2021/04/24/slack-guidelines/", "published_at": "2021-04-24T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-175009e080af", "title": "CSS Pie Timer Revisited", "url": "https://kittygiraudel.com/2021/04/11/css-pie-timer-revisited/", "published_at": "2021-04-11T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-175009e171c4", "title": "Sass Guidelines Improvements", "url": "https://kittygiraudel.com/2021/04/06/sass-guidelines-improvements/", "published_at": "2021-04-06T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500a905eb9", "title": "An Accessible Toggle", "url": "https://kittygiraudel.com/2021/04/05/an-accessible-toggle/", "published_at": "2021-04-05T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500ac81ed3", "title": "Building a Geolocation Widget", "url": "https://kittygiraudel.com/2021/03/29/building-a-geolocation-widget/", "published_at": "2021-03-29T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500af1bdee", "title": "A Tale of Languages", "url": "https://kittygiraudel.com/2021/03/22/a-tale-of-languages/", "published_at": "2021-03-22T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500bba5d73", "title": "Closing on Outside Click", "url": "https://kittygiraudel.com/2021/03/18/close-on-outside-click/", "published_at": "2021-03-18T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500bc435b9", "title": "Error Recovery With Next", "url": "https://kittygiraudel.com/2021/03/15/error-recovery-with-next/", "published_at": "2021-03-15T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500cadd62f", "title": "Gorillas’ Nav: a Case Study", "url": "https://kittygiraudel.com/2021/03/13/gorillas-nav-a-case-study/", "published_at": "2021-03-13T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500d44c5cf", "title": "Changing Name on the Internet", "url": "https://kittygiraudel.com/2021/03/08/changing-name-on-the-internet/", "published_at": "2021-03-08T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500e073613", "title": "Imagining Native Skip Links", "url": "https://kittygiraudel.com/2021/03/07/imagining-native-skip-links/", "published_at": "2021-03-07T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500e2509c9", "title": "Comparing React Dialogs", "url": "https://github.com/KittyGiraudel/react-a11y-dialog/issues/58", "published_at": "2021-03-03T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500e267c36", "title": "Hiding Content Responsibly", "url": "https://kittygiraudel.com/2021/02/17/hiding-content-responsibly/", "published_at": "2021-02-17T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500eef3343", "title": "Accessible Emojis With Eleventy", "url": "https://kittygiraudel.com/2021/01/02/accessible-emojis-with-11ty/", "published_at": "2021-01-02T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-17500f757457", "title": "Book Recommendations for 2021", "url": "https://kittygiraudel.com/2021/01/01/book-recommendations-for-2021/", "published_at": "2021-01-01T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-1750101aecd9", "title": "2020 in Review", "url": "https://kittygiraudel.com/2020/12/31/2020-in-review/", "published_at": "2020-12-31T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-175010e1799d", "title": "My Thoughts on Advent of Code", "url": "https://kittygiraudel.com/2020/12/30/my-thoughts-on-advent-of-code/", "published_at": "2020-12-30T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-175011ab1a68", "title": "A11y Advent Day 24: the Case for Accessibility", "url": "https://kittygiraudel.com/2020/12/24/a11y-advent-the-case-for-accessibility/", "published_at": "2020-12-24T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-1750121b9d76", "title": "A11y Advent Day 23: Oral Interfaces", "url": "https://kittygiraudel.com/2020/12/23/a11y-advent-oral-interfaces/", "published_at": "2020-12-23T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-175012f9a667", "title": "A11y Advent Day 22: Interactive Widgets", "url": "https://kittygiraudel.com/2020/12/22/a11y-advent-interactive-widgets/", "published_at": "2020-12-22T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-175013a480a9", "title": "A11y Advent Day 21: Testing Accessibility", "url": "https://kittygiraudel.com/2020/12/21/a11y-advent-testing-accessibility/", "published_at": "2020-12-21T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-175013e294d5", "title": "A11y Advent Day 20: Content & Tone", "url": "https://kittygiraudel.com/2020/12/20/a11y-advent-content-tone/", "published_at": "2020-12-20T00:00:00+00:00" }, { "id": "01a07df3-be87-70de-9ec9-1750144549b4", "title": "A11y Advent Day 19: Performance", "url": "https://kittygiraudel.com/2020/12/19/a11y-advent-performance/", "published_at": "2020-12-19T00:00:00+00:00" } ] posts Claim your blog
Back to Kitty Giraudel
Blog · corpus.blog/blogs/kittygiraudel.com/posts

Kitty Giraudel

kittygiraudel.com

2026

2025

2024

2023

2022

2021

2020