41554 blogs · [ { "id": "01a08727-fcd3-70e8-9905-71d9d2c44d37", "title": "Claude vs Gemini: My Use Cases", "url": "https://andreaverlicchi.eu/en/blog/claude-vs-gemini-my-use-cases/", "published_at": "2026-07-27T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d7c58322d", "title": "Should we stop using the word \"Responsive\" for design?", "url": "https://andreaverlicchi.eu/en/blog/should-we-stop-using-the-word-responsive-for-design/", "published_at": "2026-07-07T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d7cca033a", "title": "Talk: \"Ehi Gemini, sistema il CSS!\" at CSS Day Bologna", "url": "https://andreaverlicchi.eu/en/blog/css-day-bologna-talk-chrome-devtools-agents/", "published_at": "2026-06-11T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d7cd3d703", "title": "Google Antigravity 2 & Gemini 3.5 Flash: this AI duo changed my dev workflow... again", "url": "https://andreaverlicchi.eu/en/blog/google-antigravity-2-gemini-35-flash/", "published_at": "2026-05-22T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d7dc23538", "title": "My dream of a container image format: a call to the web community", "url": "https://andreaverlicchi.eu/en/blog/end-of-responsive-images-dream-image-format/", "published_at": "2026-04-29T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d7e9718a9", "title": "Talk: Enhancing Web Responsiveness at Web Day 2026, Milan", "url": "https://andreaverlicchi.eu/en/blog/web-day-2026-enhancing-web-responsiveness/", "published_at": "2026-04-01T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d7f3d0170", "title": "Refactoring Gender Bias, One Commit at a Time", "url": "https://andreaverlicchi.eu/en/blog/refactoring-gender-bias-one-commit-at-a-time/", "published_at": "2026-03-27T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d7fd4dde2", "title": "GitBar Podcast: Non toccate quel tag!", "url": "https://andreaverlicchi.eu/en/blog/gitbar-podcast-web-performance/", "published_at": "2026-03-19T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d80419a4f", "title": "Talk: Gemini + Chrome: Oltre la Chat, Bologna JS Meetup", "url": "https://andreaverlicchi.eu/en/blog/bologna-js-gemini-chrome-devtools-mcp/", "published_at": "2026-02-25T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d806584d4", "title": "Talk video: \"Ehi Gemini, sistema il CSS!\", Bologna Front-end #58", "url": "https://andreaverlicchi.eu/en/blog/bologna-front-end-gemini-chrome-devtools-mcp/", "published_at": "2025-12-09T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d80f507f9", "title": "Google Antigravity: The New IDE That Embraces Agentic AI", "url": "https://andreaverlicchi.eu/en/blog/google-antigravity-new-ide-agentic-ai/", "published_at": "2025-11-24T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d81852955", "title": "Improving Web Responsiveness - Interactivity improvements from real-world cases", "url": "https://andreaverlicchi.eu/en/blog/improving-web-responsiveness-interactivity-improvements-from-real-world-cases/", "published_at": "2025-11-01T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d81f54559", "title": "The macOS clipboard manager you've been waiting for, now native in MacOS 26 Tahoe", "url": "https://andreaverlicchi.eu/en/blog/how-to-use-multiple-clipboard-feature-on-macOS-26-tahoe/", "published_at": "2025-09-16T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d82cb5d31", "title": "Talk video: \"Debugging and Optimizing Interaction to Next Paint (INP) for a Smoother Web\", Performance Observer Meetup", "url": "https://andreaverlicchi.eu/en/blog/performance-observer-meetup-talk/", "published_at": "2025-04-16T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8361f144", "title": "Introducing yieldy-for-loop: an npm package to keep your loops non-blocking (and your UI smooth)", "url": "https://andreaverlicchi.eu/en/blog/introducing-yieldy-for-loop/", "published_at": "2025-01-14T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8402baba", "title": "Optimizing SVG Usage for Web Performance: A Comprehensive Discussion", "url": "https://andreaverlicchi.eu/en/blog/loading_svg_images_icons_performance_considerations/", "published_at": "2024-12-05T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8445075a", "title": "Talk video: \"How I made the web more responsive — real-world case studies of INP optimizations\", We Love Speed 2024 conference", "url": "https://andreaverlicchi.eu/en/blog/how-i-made-web-more-responsive-inp-video-we-love-speed-2024-nantes/", "published_at": "2024-11-26T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d85214a93", "title": "The web is dead, long live the web (repost in English)", "url": "https://andreaverlicchi.eu/en/blog/the-web-is-dead-long-live-the-web-antonio-moro-itomi/", "published_at": "2024-11-22T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d85e4db49", "title": "My experience at performance.now() 2024: Europe's premier web performance conference", "url": "https://andreaverlicchi.eu/en/blog/performance-now-2024-experience-europe-web-performance-conference/", "published_at": "2024-11-16T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d867af219", "title": "How to use Google Meet with two screens: separating shared content and attendees' faces", "url": "https://andreaverlicchi.eu/en/blog/google-meet-two-screens-separate-content-faces/", "published_at": "2024-11-06T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8747d3ac", "title": "True full-screen mode for Google Meet shared content", "url": "https://andreaverlicchi.eu/en/blog/true-full-screen-google-meet-bookmarklet/", "published_at": "2024-11-05T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d878809a9", "title": "The remote work debate: my view on finding balance", "url": "https://andreaverlicchi.eu/en/blog/remote-work-debate-perfect-balance/", "published_at": "2024-10-20T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d883ee0e2", "title": "Talk: How I made the web more responsive — real-world case studies of INP optimizations", "url": "https://andreaverlicchi.eu/en/blog/how-i-made-the-web-more-responsive--debug-avoid-slow-interaction-next-paint-inp/", "published_at": "2024-09-17T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d89226cf3", "title": "My Favorite Features of iOS 18: A Game-Changer for Multilingual Users and More", "url": "https://andreaverlicchi.eu/en/blog/favourite-features-ios-18/", "published_at": "2024-09-13T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d898b8d7e", "title": "Mitigating CLS Caused by Promotional Banners: A Practical Solution", "url": "https://andreaverlicchi.eu/en/blog/mitigating-cls-caused-by-promotional-banners/", "published_at": "2024-08-26T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d89b28ad6", "title": "Impressions on the Google I/O Connect 2024 + GDE Forum in Berlin", "url": "https://andreaverlicchi.eu/en/blog/google-io-connect-2024-berlin/", "published_at": "2024-08-01T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8a0e8944", "title": "Jake Archibald's talk \"In the loop\", transposed", "url": "https://andreaverlicchi.eu/en/blog/jake-archibald-in-the-loop-jsconf-asia-talk-transposed/", "published_at": "2024-02-17T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8a15065e", "title": "Web performance snippets to debug INP in Chrome dev tools", "url": "https://andreaverlicchi.eu/en/blog/web-performance-snippets-debug-inp-lcp-cls-core-web-vitals-in-chrome-dev-tools/", "published_at": "2024-02-14T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8a58ad2f", "title": "How to use scheduler.yield to improve web pages responsiveness", "url": "https://andreaverlicchi.eu/en/blog/how-to-use-scheduler-yield-to-improve-web-page-responsiveness/", "published_at": "2023-08-31T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8a9c52dc", "title": "Preparing for Interaction to Next Paint (INP), a new Core Web Vital starting March 2024", "url": "https://andreaverlicchi.eu/en/blog/preparing-for-interaction-to-next-paint-inp-core-web-vital-google/", "published_at": "2023-07-12T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8adbfd53", "title": "Talk: How and Why ($) to optimize web performance in 2023", "url": "https://andreaverlicchi.eu/en/blog/how-and-why-to-optimize-web-performance-practical-tips-2023/", "published_at": "2023-06-16T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8b8d85f6", "title": "I'm a Google Developer Expert for Web Performance", "url": "https://andreaverlicchi.eu/en/blog/google-developer-expert-gde-web-performance/", "published_at": "2022-12-06T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8bb5e029", "title": "aspect-ratio: A modern way to reserve space for images and async content in responsive design", "url": "https://andreaverlicchi.eu/en/blog/aspect-ratio-modern-reserve-space-lazy-images-async-content-responsive-design/", "published_at": "2022-11-19T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8c81d9a3", "title": "Against online streaming of local meetups.", "url": "https://andreaverlicchi.eu/en/blog/against-online-streaming-of-local-meetups/", "published_at": "2022-11-19T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8cfb5e40", "title": "Do we still need lazy loading libraries and `data-src`?", "url": "https://andreaverlicchi.eu/en/blog/do-we-still-need-lazy-loading-libraries-data-src/", "published_at": "2022-11-13T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8da3f4be", "title": "Talk: Get speedy with responsive images - LazyLoad Conference 2022", "url": "https://andreaverlicchi.eu/en/blog/lazyload-conference-talk-automating-responsive-images-automator/", "published_at": "2022-06-24T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8dfe6b78", "title": "Talk: Images optimisation 4.0, automate your work with a user-centric approach - CSS Day 2022", "url": "https://andreaverlicchi.eu/en/blog/css-day-2022-talk-automating-responsive-images-automator-ottimizzazione-immagini-4-0/", "published_at": "2022-04-01T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8eb53764", "title": "How to integrate git in Mac OS Terminal (shell)", "url": "https://andreaverlicchi.eu/en/blog/how-integrate-git-autocomplete-mac-shell-terminal-bash-zsh/", "published_at": "2022-03-11T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d8fac927e", "title": "An elegant technique to lazyload images in Swiper, and lazily create Swiper instances", "url": "https://andreaverlicchi.eu/en/blog/lazyload-swiper-images-instances/", "published_at": "2021-10-27T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d90856092", "title": "vanilla-lazyload vs lazysizes", "url": "https://andreaverlicchi.eu/en/blog/vanilla-lazyload-vs-lazysizes/", "published_at": "2021-09-26T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d917285c8", "title": "Quicklink case study: faster pages, increased page views", "url": "https://andreaverlicchi.eu/en/blog/quicklink-case-study-faster-pages-increased-page-views/", "published_at": "2021-06-18T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d926c12b6", "title": "A clever way to serve WebP images to modern browsers and JPG to IE", "url": "https://andreaverlicchi.eu/en/blog/clever-way-serve-webp-modern-browsers-jpg-internet-explorer/", "published_at": "2020-11-29T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d935c1df1", "title": "How to cap image fidelity to 2x and save 45% image weight on high-end mobile phones", "url": "https://andreaverlicchi.eu/en/blog/capping-image-fidelity-2x-minimize-loading-time/", "published_at": "2020-11-11T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d941f66ac", "title": "How to optimise for CLS when loading more content asynchronously", "url": "https://andreaverlicchi.eu/en/blog/optimise-cls-loading-more-content-pagination/", "published_at": "2020-08-31T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d945fdc32", "title": "Lazy load responsive images in 2020", "url": "https://andreaverlicchi.eu/en/blog/lazy-load-responsive-images-in-2020-srcset-sizes-picture-webp/", "published_at": "2020-05-24T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d9558cc9d", "title": "How to productively use the new Chromium-based Microsoft Edge browser", "url": "https://andreaverlicchi.eu/en/blog/how-to-productively-use-the-new-chromium-based-microsoft-edge-browser/", "published_at": "2020-01-16T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d95883f1b", "title": "Critical CSS with Jekyll and SASS", "url": "https://andreaverlicchi.eu/en/blog/critical-css-jekyll-sass-github-pages/", "published_at": "2019-06-17T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d962333a5", "title": "Web Share API, the step after PWA", "url": "https://andreaverlicchi.eu/en/blog/web-share-api-step-by-step/", "published_at": "2019-06-14T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d965ffbad", "title": "Making my blog a Progressive Web Application", "url": "https://andreaverlicchi.eu/en/blog/this-website-pwa/", "published_at": "2019-06-10T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d974dbd27", "title": "A smashing article on hybrid lazy loading", "url": "https://andreaverlicchi.eu/en/blog/hybrid-lazy-loading-smashing-magazine-article/", "published_at": "2019-05-16T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d98120b41", "title": "Native lazy loading and js-based fallback with vanilla-lazyload 12", "url": "https://andreaverlicchi.eu/en/blog/native-lazy-loading-with-vanilla-lazyload/", "published_at": "2019-04-11T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d983a927c", "title": "Responsive and accessible table design", "url": "https://andreaverlicchi.eu/en/blog/tables-look-like-lists-look-like-tables-accessible-responsive-design/", "published_at": "2019-03-08T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d99361d64", "title": "Lazy load responsive images in 2019", "url": "https://andreaverlicchi.eu/en/blog/lazy-load-responsive-images-in-2019-srcset-sizes-more/", "published_at": "2019-03-01T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d9a168578", "title": "Check if an element is still inside viewport after a given time", "url": "https://andreaverlicchi.eu/en/blog/check-if-element-still-inside-viewport-after-given-time/", "published_at": "2018-08-27T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d9a4cebc9", "title": "Create a JavaScript library using ES2015 modules, Gulp, Rollup and Jest", "url": "https://andreaverlicchi.eu/en/blog/create-a-javascript-library-using-es2015-modules-gulp-rollup-jest/", "published_at": "2017-09-09T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d9b1110d2", "title": "Intersection Observer and lazy loading of elements", "url": "https://andreaverlicchi.eu/en/blog/using-intersection-observers-to-create-vanilla-lazyload/", "published_at": "2017-09-04T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d9b1cfc9d", "title": "Using CSS variables as a spacing unit", "url": "https://andreaverlicchi.eu/en/blog/using-css-variables-to-scale-layout-spaces/", "published_at": "2017-06-14T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d9b2f263b", "title": "Changing text color for contrast based on background lightness", "url": "https://andreaverlicchi.eu/en/blog/changing-text-color-for-contrast-based-on-background-lightness/", "published_at": "2017-06-02T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d9c1b9432", "title": "Responsive images, an HTML 5.1 standard", "url": "https://andreaverlicchi.eu/en/blog/responsive-images-a-html-51-standard/", "published_at": "2017-04-10T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d9c7b1a47", "title": "Responsive images? You don't need the picture tag", "url": "https://andreaverlicchi.eu/en/blog/responsive-images-you-dont-need-picture-tag/", "published_at": "2015-12-21T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d9ca093bd", "title": "Lazy load of responsive images with srcset and LazyLoad", "url": "https://andreaverlicchi.eu/en/blog/lazy-load-responsive-images-srcset/", "published_at": "2015-04-20T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d9cfe4179", "title": "Advanced sprite generation using Compass (SASS)", "url": "https://andreaverlicchi.eu/en/blog/advanced-sprite-generation-using-compass-sass/", "published_at": "2015-03-06T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d9d9637ec", "title": "A new LazyLoad to improve your website performance", "url": "https://andreaverlicchi.eu/en/blog/a-new-lazyload-to-improve-your-website-performance/", "published_at": "2014-11-20T00:00:00+00:00" }, { "id": "01a08727-fcd4-734f-b407-c96d9da16d05", "title": "CSS 3 only spinning \"loading\" animation", "url": "https://andreaverlicchi.eu/en/blog/css-3-only-spinning-loading-animation/", "published_at": "2012-10-03T00:00:00+00:00" } ] posts Claim your blog
Back to andreaverlicchi.eu
Blog · corpus.blog/blogs/andreaverlicchi.eu/posts

andreaverlicchi.eu

andreaverlicchi.eu

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2015

2014

2012