<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Yoav I. Kadosh's Blog</title>
        <link>https://yoavik.com/</link>
        <description>Tutorials and live code examples for web developers, focused on React, CSS, animation, graphics, and more!</description>
        <lastBuildDate>Mon, 07 Apr 2025 17:39:48 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>© 2026 Yoav Kadosh. All Rights Reserved.</copyright>
        <item>
            <title><![CDATA[My Thoughts on the AI Revolution]]></title>
            <link>https://yoavik.com/posts/the-ai-revolution</link>
            <guid>https://yoavik.com/posts/the-ai-revolution</guid>
            <pubDate>Fri, 28 Mar 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Is AI going to replace engineers? A post about AI, written with the aid of AI.]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
        </item>
        <item>
            <title><![CDATA[useCanvasAnimation()]]></title>
            <link>https://yoavik.com/snippets/use-canvas-animation</link>
            <guid>https://yoavik.com/snippets/use-canvas-animation</guid>
            <pubDate>Wed, 12 Mar 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A React hook for rendering canvas animations]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//images/social/snippets.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Debugging "max serverless size exceeded" in Next.js]]></title>
            <link>https://yoavik.com/posts/debugging-max-serverless-size</link>
            <guid>https://yoavik.com/posts/debugging-max-serverless-size</guid>
            <pubDate>Sun, 09 Mar 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[How to debug the "A Serverless Function has exceeded the unzipped maximum size of 250 MB" error in Next.js & Vercel]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
        </item>
        <item>
            <title><![CDATA[Planter Box]]></title>
            <link>https://yoavik.com/fabrication/planter-box</link>
            <guid>https://yoavik.com/fabrication/planter-box</guid>
            <pubDate>Sun, 21 Apr 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[A custom built wooden planter box that wraps the corner of my apartment]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/10.dc8e24a7.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Lego Cabinet]]></title>
            <link>https://yoavik.com/fabrication/lego-cabinet</link>
            <guid>https://yoavik.com/fabrication/lego-cabinet</guid>
            <pubDate>Sun, 26 Nov 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[A Lego cabinet that I built for my son, with 6 drawers, internal dividers, 3d printed handles and side panels, and wheels]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/4.c96606d6.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Waterfall Tables]]></title>
            <link>https://yoavik.com/fabrication/waterfall-tables</link>
            <guid>https://yoavik.com/fabrication/waterfall-tables</guid>
            <pubDate>Mon, 21 Aug 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Two beautiful waterfall tables made from oak, ipe and poplar wood]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/1.bf46551c.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[<MouseTracker/>]]></title>
            <link>https://yoavik.com/snippets/mouse-tracker</link>
            <guid>https://yoavik.com/snippets/mouse-tracker</guid>
            <pubDate>Sun, 28 May 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[A react component that follows your mouse]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//images/social/snippets.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Rabbit Hutch]]></title>
            <link>https://yoavik.com/fabrication/rabbit-hutch</link>
            <guid>https://yoavik.com/fabrication/rabbit-hutch</guid>
            <pubDate>Sun, 21 May 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[A 2-story outdoor rabbit hutch with a hiding spot for our rabbits]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/6.8a88e7b2.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Friendship Bench]]></title>
            <link>https://yoavik.com/fabrication/friendship-bench</link>
            <guid>https://yoavik.com/fabrication/friendship-bench</guid>
            <pubDate>Wed, 03 May 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[A wooden bench I made for my daughter's school, in memory of the Dee family]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/6.8f3fd373.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Book Shelves]]></title>
            <link>https://yoavik.com/fabrication/book-shelves</link>
            <guid>https://yoavik.com/fabrication/book-shelves</guid>
            <pubDate>Mon, 27 Mar 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[A set of narrow book shelves I made for a spot in our hallway]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/22.ddbc50d3.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[useGlobalState()]]></title>
            <link>https://yoavik.com/snippets/use-global-state</link>
            <guid>https://yoavik.com/snippets/use-global-state</guid>
            <pubDate>Sun, 22 Jan 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[Sharing state between React components without context or fancy libraries]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//images/social/snippets.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[usePerishable()]]></title>
            <link>https://yoavik.com/snippets/use-perishable</link>
            <guid>https://yoavik.com/snippets/use-perishable</guid>
            <pubDate>Tue, 10 Jan 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[A React hook for creating perishable elements for animation purposes.]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//images/social/snippets.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[<CodePen/>]]></title>
            <link>https://yoavik.com/snippets/codepen</link>
            <guid>https://yoavik.com/snippets/codepen</guid>
            <pubDate>Mon, 26 Dec 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A React component for embedding CodePens]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//images/social/snippets.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[3D text]]></title>
            <link>https://yoavik.com/snippets/3d-text</link>
            <guid>https://yoavik.com/snippets/3d-text</guid>
            <pubDate>Thu, 15 Dec 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A sass function for generating 3D text with a clever use of CSS text-shadow]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//images/social/snippets.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[<ImageWithFallback/>]]></title>
            <link>https://yoavik.com/snippets/image-with-fallback</link>
            <guid>https://yoavik.com/snippets/image-with-fallback</guid>
            <pubDate>Wed, 26 Oct 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A React component for showing a fallback component when an image cannot be found]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//images/social/snippets.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[useIntersectionObserver()]]></title>
            <link>https://yoavik.com/snippets/use-intersection-observer</link>
            <guid>https://yoavik.com/snippets/use-intersection-observer</guid>
            <pubDate>Sun, 02 Oct 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A React hook for detecting element visibility within a container]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//images/social/snippets.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Workbench]]></title>
            <link>https://yoavik.com/fabrication/workbench</link>
            <guid>https://yoavik.com/fabrication/workbench</guid>
            <pubDate>Thu, 28 Jul 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A wooden workbench with a vise for the workshop.]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/7.50f213cc.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[useDocumentEvent()]]></title>
            <link>https://yoavik.com/snippets/use-document-event</link>
            <guid>https://yoavik.com/snippets/use-document-event</guid>
            <pubDate>Tue, 26 Jul 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A React hook for performantly attaching event listeners to the document]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//images/social/snippets.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[<ClientOnly/>]]></title>
            <link>https://yoavik.com/snippets/client-only</link>
            <guid>https://yoavik.com/snippets/client-only</guid>
            <pubDate>Sat, 09 Jul 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A React component for rendering content only on the client side]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//images/social/snippets.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Media Query Mixin]]></title>
            <link>https://yoavik.com/snippets/media-query-mixin</link>
            <guid>https://yoavik.com/snippets/media-query-mixin</guid>
            <pubDate>Sat, 09 Jul 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A sass mixin for breakpoint based media-queries]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//images/social/snippets.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[useAnimationFrame()]]></title>
            <link>https://yoavik.com/snippets/use-animation-frame</link>
            <guid>https://yoavik.com/snippets/use-animation-frame</guid>
            <pubDate>Sat, 09 Jul 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A React hook for working with animation frames]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//images/social/snippets.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[useValue()]]></title>
            <link>https://yoavik.com/snippets/use-value</link>
            <guid>https://yoavik.com/snippets/use-value</guid>
            <pubDate>Sat, 09 Jul 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A React hook for persisting non-stateful values]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//images/social/snippets.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Band Saw Cabinet]]></title>
            <link>https://yoavik.com/fabrication/band-saw-cabinet</link>
            <guid>https://yoavik.com/fabrication/band-saw-cabinet</guid>
            <pubDate>Mon, 13 Jun 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A 3-drawer band saw cabinet with casters]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/6.d9179c5a.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Drill Press Cabinet]]></title>
            <link>https://yoavik.com/fabrication/drill-press-cabinet</link>
            <guid>https://yoavik.com/fabrication/drill-press-cabinet</guid>
            <pubDate>Sun, 22 May 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A drill press cabinet to store bits and accessories.]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/7.b3c19f6f.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Tic Tac Toe]]></title>
            <link>https://yoavik.com/fabrication/tic-tac-toe</link>
            <guid>https://yoavik.com/fabrication/tic-tac-toe</guid>
            <pubDate>Wed, 09 Mar 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[A wooden tic-tac-toe game board with X and O pieces.]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/2.07eb46cb.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Wine Bottle & Glass Holder]]></title>
            <link>https://yoavik.com/fabrication/wine-glass-holder</link>
            <guid>https://yoavik.com/fabrication/wine-glass-holder</guid>
            <pubDate>Fri, 03 Sep 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[A wine bottle and glass holder made from Pine and Ipe wood]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/1.1fe518bd.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Gradient.art - Designing and Inspecting Complex CSS Gradients]]></title>
            <link>https://yoavik.comhttps://dev.to/ykadosh/gradient-art-designing-and-inspecting-complex-css-gradients-4b06</link>
            <guid>https://yoavik.comhttps://dev.to/ykadosh/gradient-art-designing-and-inspecting-complex-css-gradients-4b06</guid>
            <pubDate>Thu, 02 Sep 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[gra.dient.art is an advanced online CSS gradient editor. In this article i'm exploring its various tools and features.]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
        </item>
        <item>
            <title><![CDATA[How I Created These Generative Underline Pen Strokes]]></title>
            <link>https://yoavik.comhttps://dev.to/ykadosh/underline-pen-strokes-randomly-generated-53k7</link>
            <guid>https://yoavik.comhttps://dev.to/ykadosh/underline-pen-strokes-randomly-generated-53k7</guid>
            <pubDate>Wed, 23 Jun 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[I created a small React component that adds a randomly generated pen stroke underline to a given word. The strokes are rendered using an SVG <path/> element.]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
        </item>
        <item>
            <title><![CDATA[Wooden chandelier]]></title>
            <link>https://yoavik.com/fabrication/wooden-chandelier</link>
            <guid>https://yoavik.com/fabrication/wooden-chandelier</guid>
            <pubDate>Tue, 06 Apr 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[A wooden chandelier made from indian rosewood and brass light fixtures.]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/15.e6de1a15.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[How I Made This Realistic Red Switch (Pure CSS)]]></title>
            <link>https://yoavik.comhttps://dev.to/ykadosh/how-i-made-this-realistic-red-switch-pure-css-49g2</link>
            <guid>https://yoavik.comhttps://dev.to/ykadosh/how-i-made-this-realistic-red-switch-pure-css-49g2</guid>
            <pubDate>Mon, 22 Mar 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[In this tutorial I explain in detail how I made my popular 'Realistic Red Switch' pen using various CSS techniques, including gradients, 3D transformations, animations, and transitions.]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
        </item>
        <item>
            <title><![CDATA[Webrix.js - Building Blocks for Interactive React Apps]]></title>
            <link>https://yoavik.comhttps://dev.to/ykadosh/webrix-js-building-blocks-for-interactive-react-apps-4m54</link>
            <guid>https://yoavik.comhttps://dev.to/ykadosh/webrix-js-building-blocks-for-interactive-react-apps-4m54</guid>
            <pubDate>Wed, 17 Feb 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[webrix.js is a set of React components and hooks, each dedicated to solving a single UI challenge. In the article I explore the different components and hooks in this library.]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
        </item>
        <item>
            <title><![CDATA[Office Desk]]></title>
            <link>https://yoavik.com/fabrication/office-desk</link>
            <guid>https://yoavik.com/fabrication/office-desk</guid>
            <pubDate>Fri, 25 Dec 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[An L-shoffice desk with oak veneer and top-surface power outlets]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/22.b57c1d18.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Don’t Mix Controlled and Uncontrolled Values In React]]></title>
            <link>https://yoavik.comhttps://betterprogramming.pub/dont-mix-controlled-uncontrolled-values-in-react-e7ab191d8dc4</link>
            <guid>https://yoavik.comhttps://betterprogramming.pub/dont-mix-controlled-uncontrolled-values-in-react-e7ab191d8dc4</guid>
            <pubDate>Mon, 26 Oct 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[In this article, I will be discussing one of the most fundamental rules in component architecture. This fundamental rule is often violated, leading to issues that are very hard (if not impossible) to solve.]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
        </item>
        <item>
            <title><![CDATA[Yard Fence]]></title>
            <link>https://yoavik.com/fabrication/yard-fence</link>
            <guid>https://yoavik.com/fabrication/yard-fence</guid>
            <pubDate>Fri, 11 Sep 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[A wooden fence built on top of a block wall with some fancy details]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/1.f47dddf8.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Balancing Responsibilities in Software Components]]></title>
            <link>https://yoavik.comhttps://medium.com/swlh/balancing-responsibilities-in-software-components-b0be0e59b8b2</link>
            <guid>https://yoavik.comhttps://medium.com/swlh/balancing-responsibilities-in-software-components-b0be0e59b8b2</guid>
            <pubDate>Mon, 08 Jun 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Responsibilities and it's derivative — abstractions — are one of the more ambiguous aspects of software quality, at least to me.]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
        </item>
        <item>
            <title><![CDATA[Wooden Playhouse]]></title>
            <link>https://yoavik.com/fabrication/wooden-playhouse</link>
            <guid>https://yoavik.com/fabrication/wooden-playhouse</guid>
            <pubDate>Tue, 12 May 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[An outdoor wooden playhouse with 2 stories and a balcony]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
            <enclosure url="https://yoavik.com//_next/static/media/1.fef4ca31.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Why Rewriting Is Essential for Keeping Software Alive]]></title>
            <link>https://yoavik.comhttps://betterprogramming.pub/why-code-rewriting-is-essential-for-keeping-software-alive-81c7307e7f6</link>
            <guid>https://yoavik.comhttps://betterprogramming.pub/why-code-rewriting-is-essential-for-keeping-software-alive-81c7307e7f6</guid>
            <pubDate>Sun, 01 Sep 2019 00:00:00 GMT</pubDate>
            <description><![CDATA[Embrace rewriting software components regularly to avoid having to rewrite the entire software eventually.]]></description>
            <author>yoavks@gmail.com (Yoav Kadosh)</author>
        </item>
    </channel>
</rss>