<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><description>Software engineer. Author of mswjs.io and @bytebinding.com. Teacher at http://EpicWeb.dev and egghead.io. Storyteller @zakarcher.com.&#xA;&#xA;My debut book &#34;LOGGERHEADS&#34; is out 👇&#xA;https://zakarcher.com/books/loggerheads</description><link>https://bsky.app/profile/kettanaito.com</link><title>@kettanaito.com - Artem Zakharchenko</title><item><link>https://bsky.app/profile/kettanaito.com/post/3mvlgvm7izp2q</link><description>I can&#39;t believe there are still developers who don&#39;t know that TypeScript isn&#39;t versioned per semver. Look it up. Have your minds blown.</description><pubDate>15 Sep 2026 20:15 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mvlgvm7izp2q</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mvl467a5lc2j</link><description>MSW add-on for Storybook is downloaded 1,539,807 times per week! That makes it one of the most used add-ons in the entire Storybook ecosystem. Pretty wild.&#xA;&#xA;And with the latest release, it&#39;s the best way to mock the network in your stories, too.&#xA;&#xA;https://github.com/mswjs/msw-storybook-addon</description><pubDate>15 Sep 2026 17:03 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mvl467a5lc2j</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mvkkllhvd52e</link><description>It&#39;s crazy how Vitest has replaced not just JSDOM but also React Testing Library with their Browser Mode. I&#39;m absolutely loving this 😍 &#xA;&#xA;Once you write a single test like this, you will never want to go back.</description><pubDate>15 Sep 2026 11:49 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mvkkllhvd52e</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mvix26oyy72u</link><description>There is a special room in hell for those preying on the vulnerable financial state of open source maintainers.</description><pubDate>14 Sep 2026 20:26 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mvix26oyy72u</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mvfhxvqb3u2u</link><description>In the new version of MSW docs, all code snippets will feature type definitions for all APIs thanks to Shiki&#39;s fantastic Twoslash. This will also allow us to drop redundant explanations as you can inspect the types yourself now.</description><pubDate>13 Sep 2026 11:18 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mvfhxvqb3u2u</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mvdrr4qpgw2j</link><description>Why would I rate my own book? What kind of elaborate trap is this? No author should be the subject of such open cruelty.</description><pubDate>12 Sep 2026 19:08 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mvdrr4qpgw2j</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mvdqmcnuhi2c</link><description>What a heartwarming review to see 😊 I hope more people enjoy the stories I write for myself.</description><pubDate>12 Sep 2026 18:48 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mvdqmcnuhi2c</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mvdqd33kgc2n</link><description>Wait, Bluesky now automatically enumerates posts?&#xA;Let me test that.</description><pubDate>12 Sep 2026 18:43 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mvdqd33kgc2n</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mvd2qnzlao2e</link><description>If you&#39;re working on a 2FA in your product, please convince your manager against SMS. That has to stop. It&#39;s inconvenient and offers no security.&#xA;&#xA;Embrace passkeys and other physical security measures. Thank me later.</description><pubDate>12 Sep 2026 12:16 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mvd2qnzlao2e</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mvd2mxc7ms2j</link><description>Own the media you like.&#xA;&#xA;Finally got an HDD for all my backups. Not on a cloud, on a physical disk in my drawer. Cheaper and by an order of magnitude more secure.&#xA;&#xA;Next, need to hunt down Blurays of my favorite shows that I still don&#39;t have. Exciting!</description><pubDate>12 Sep 2026 12:14 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mvd2mxc7ms2j</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mvctum5lpj2k</link><description>Apparently unpopular opinion, but I cannot care less about steampunk or post-apocalyptic settings for the Avatar. They should&#39;ve continued on the largely unexplored world of the original. Instead, they brushed over one of the best worldbuildings in fiction to give us this.</description><pubDate>12 Sep 2026 10:13 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mvctum5lpj2k</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mvan7hgryk2t</link><description>I like how iPhone Duo lets me effortlessly judge the objectivity of a reviewer by the sheer fact of them mentioning the crease.&#xA;&#xA;Because it is there 🤷 Two, in fact. You don&#39;t need the wear to see them, just tilt the phone a bit.</description><pubDate>11 Sep 2026 13:09 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mvan7hgryk2t</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mv6wac3fzo2t</link><description>Quickly, JavaScript, I need an API that runs a callback as late as possible.&#xA;&#xA;JavaScript: setImmediate</description><pubDate>10 Sep 2026 20:45 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mv6wac3fzo2t</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mv6t7wo2gg2j</link><description>Question: can I schedule a callback to the absolute end of the event loop, no matter how many frames it will have?&#xA;&#xA;Example:</description><pubDate>10 Sep 2026 19:51 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mv6t7wo2gg2j</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mv6q3fbk3f2l</link><description>One of the hardest problems in MSW is letting you observe the network BEFORE you decide to handle it or pass through.&#xA;&#xA;You likely never gave this much thought, but no other API mocking library works this way. If you defined a mock, you must mock. Not with MSW.</description><pubDate>10 Sep 2026 18:55 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mv6q3fbk3f2l</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mv6pojjssn2k</link><description>Say what you want, these look real nice together.</description><pubDate>10 Sep 2026 18:48 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mv6pojjssn2k</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mv62thq65n2u</link><description>If you let your agent write component tests for you, you&#39;re in BIG trouble. Why? Because agents were trained on prehistoric tests still using JSDOM. &#xA;&#xA;Yikes 🤢&#xA;&#xA;Join me on 📆 October 5th in 🇨🇿 Prague for a live workshop to learn component testing in the real browser with Vitest.</description><pubDate>10 Sep 2026 12:35 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mv62thq65n2u</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mv5slgxupw2j</link><description>A Vite plugin allows MSW to have a single, unified, and automated integration that&#39;s pre-configured for the environment. A single &#34;virtual:msw&#34; is your entrypoint to anything network throughout the app.&#xA;&#xA;See this example of both client and server mocking in TanStack Start.</description><pubDate>10 Sep 2026 10:07 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mv5slgxupw2j</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mv4fiwtxpx2e</link><description>If I had unlimited money, I would very much like to make an e-reader that doesn&#39;t suck ass. The technology is right there.</description><pubDate>09 Sep 2026 20:40 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mv4fiwtxpx2e</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mv4c73dw5j2k</link><description>Does something like an &#34;ecosystem-test&#34; GitHub action exist?&#xA;&#xA;- Checkout the given repo.&#xA;- Install the working repo as the dependency.&#xA;- Run the specified commands (e.g. build + test).&#xA;&#xA;Maintainers, how do you do this? Don&#39;t tell me that by hand.</description><pubDate>09 Sep 2026 19:41 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mv4c73dw5j2k</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3mv4bozp2e22g</link><description>A cover&#39;s job is to make you read the blurb.&#xA;&#xA;The blurb&#39;s job is to make you open the first chapter.&#xA;&#xA;The first chapter&#39;s job is to make you never want to put down the book you&#39;re holding.</description><pubDate>09 Sep 2026 19:32 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3mv4bozp2e22g</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3muzi75mny32u</link><description>I never got to properly thank Forbes for compiling an annual list of companies using MSW. I&#39;m not sure why they stopped at 500, but I&#39;m still grateful!</description><pubDate>08 Sep 2026 16:51 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3muzi75mny32u</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3muzhv2eymj2l</link><description>MSW is celebrating 8 years this November. Whatever special should I prepare for that date 🤔</description><pubDate>08 Sep 2026 16:45 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3muzhv2eymj2l</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3muzgwkhqvu2m</link><description>No way.</description><pubDate>08 Sep 2026 16:28 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3muzgwkhqvu2m</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3muynkono2s2y</link><description>It is a special kind of pride to see your book out there in the world.&#xA;&#xA;[contains quote post or other embedded content]</description><pubDate>08 Sep 2026 08:54 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3muynkono2s2y</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3muxiru3uft2q</link><description>Sometimes you&#39;re successful in your 30s. Something in your 40s. What matters is your continuous delivery.</description><pubDate>07 Sep 2026 21:56 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3muxiru3uft2q</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3muxhviwflw2j</link><description>I&#39;ve been reading Berserk lately and seeing how much Dark Souls was inspired by Miura&#39;s work, I&#39;m compelled to replay the games because they are, in my mind, set in the Berserk universe that&#39;s already dead.</description><pubDate>07 Sep 2026 21:40 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3muxhviwflw2j</guid></item><item><link>https://bsky.app/profile/kettanaito.com/post/3muxdt4mxdw2n</link><description>You know what a magician and a DevOps engineer have in common?&#xA;&#xA;They never reveal their secrets.</description><pubDate>07 Sep 2026 20:27 +0000</pubDate><guid isPermaLink="false">at://did:plc:dom5xpmepmtuk52jspdkb5sd/app.bsky.feed.post/3muxdt4mxdw2n</guid></item></channel></rss>