Sign in

Artem Zakharchenko

@kettanaito.com
4.8K followers 228 following 5.7K posts

Software engineer. Author of mswjs.io and @bytebinding.com. Teacher at EpicWeb.dev and egghead.io. Storyteller @zakarcher.com. My debut book "LOGGERHEADS" is out 👇 zakarcher.com/books/loggerheads

PostsRepliesMedia
Artem Zakharchenko @kettanaito.com · 2h
Serves real-world apps really well.
000
Artem Zakharchenko @kettanaito.com · 12h
Async History Stack is one of the most impressive tiny pieces of software I built for my upcoming app. Extremely powerful, tiny, and dependency-free way to compose actions into history entries with undo/redo/cancellation/etc. You should give it a try. github.com/kettanaito/...
github.com
GitHub - kettanaito/async-history-stack: Arbitrary change history management in JavaScript.
Arbitrary change history management in JavaScript. - kettanaito/async-history-stack
2112
Artem Zakharchenko @kettanaito.com · 12h
Hi @jasnell.me! I'd love to join the discussion around ServerRequest/ServerResponse (new network primitives for Node). What is the best place for me to do so?
030
Artem Zakharchenko @kettanaito.com · 14h
A good one.
000
Artem Zakharchenko @kettanaito.com · 15h
Learning to gather the discipline to push through is the rite of passage to any creative endeavor. Getting off the inspiration drug and making things happen at any time, any mood.
130
Artem Zakharchenko @kettanaito.com · 20h
The primitives have to be designed to stand on their own. Not as a part of fetch (or a new request client), but its own thing. Just like you can construct new Request, you should be able to construct any network request with those primitives, decoupling declaration and actual fetching.
010
Artem Zakharchenko @kettanaito.com · 20h
Yeah, I've seen this (as well as read about the background behind this). It's not the same problem. It has the problem I've outlined in it, but this one has a far bigger scope. If anything, it can be built on top of the solution to the original problem.
110
Artem Zakharchenko @kettanaito.com · 21h
You got this!
010
Artem Zakharchenko @kettanaito.com · 21h
I'm so sorry to hear this. Please take care of yourself.
110
Artem Zakharchenko @kettanaito.com · 22h
I'm not sure who would be the right folks to involve at the design stage if I ever want this to garner broader adoption. But the beauty of software is that it's moulded out of continuous iteration so time will tell.
020
Artem Zakharchenko @kettanaito.com · 22h
And it might actually work since MSW is an enclosed ecosystem. You want to declare a mocked HTTP2 response that Fetch API cannot do? Import the ServerResponse from MSW and declare away!
150
Artem Zakharchenko @kettanaito.com · 22h
I was prototyping HTTP2 support in MSW and came to yet another realization that we do need proper server-side network primitives. This might be the turning point for me implementing those. A Request that isn't married to REST. A Response that supports trailers. The good stuff.
260
Artem Zakharchenko @kettanaito.com · 03/10/2026
From my experience, companies never started sponsoring out of the blue. They always reach out and that's where I direct them to OC if that's their preferred way of doing things. I'm more than happy highlighting OC, but the real problem here is motivating companies to sponsor!
200
Artem Zakharchenko @kettanaito.com · 03/10/2026
A similar story with criterion/criteria. It's never "a criteria".
000
Artem Zakharchenko @kettanaito.com · 03/10/2026
I thoroughly enjoyed S1 and S2. Let me know your thoughts on S3, I have some gripes.
010
Artem Zakharchenko @kettanaito.com · 03/10/2026
Not that it matters who this is, really. I've long abandoned the notion of correlating one's occupation to their intellectual ability. That only leads to disappointment.
0141
Artem Zakharchenko @kettanaito.com · 03/10/2026
It never ceases to amaze me how gullible people are. They tell you coding is solved and yet software is perpetually broken. Then, they tell you not to read the code because we all know the best way to deal with problems is to ignore them. And that's engineers.
3291
Artem Zakharchenko @kettanaito.com · 03/10/2026
Fair point. I do prioritize GitHub since that's where the majority of the present sponsors are, including both companies and individuals. I also find OC to be a bit confusing tax-wise and I keep that budget as a backup or a fund for reimbursing contributors if they agree to it.
110
Artem Zakharchenko @kettanaito.com · 03/10/2026
It's always been there! opencollective.com/mswjs Discoverable from the sponsorship options on GitHub as well.
opencollective.com
Mock Service Worker - Open Collective
The industry standard for API mocking in JavaScript.
110
Artem Zakharchenko @kettanaito.com · 02/10/2026
You've made my day, Ilja. Thank you!
030
Artem Zakharchenko @kettanaito.com · 02/10/2026
❤️ I did a bunch of subscription cleansing myself last month. Netflix, Dropbox, Google Drive, all gone. It's all a bit here and there, and then it adds up to absurd numbers. Nothing but a positive change from pruning those subs.
020
Artem Zakharchenko @kettanaito.com · 02/10/2026
Thank you so much for sharing this, Dominik! I sincerely hope this helps stir some conversations in companies. Fingers crossed.
040
Artem Zakharchenko @kettanaito.com · 02/10/2026
😊 A pleasure to hear.
010
Artem Zakharchenko @kettanaito.com · 02/10/2026
Thank you so much for supporting my work on MSW, @fubits.dev ❤️ You're the best.
190
Artem Zakharchenko @kettanaito.com · 02/10/2026
With MSW 3.0 released this week, I want to try something new to make the project financially sustainable. I wrote an open letter about the project, its history, and impact on the ecosystem. I ask for five minutes of your time to read it. Thank you. mswjs.io/sponsor
mswjs.io
Sponsor
Support API mocking on the web by becoming a sponsor.
14217
Artem Zakharchenko @kettanaito.com · 02/10/2026
For those lacking imagination, reality is the pinnacle of a dream.
120
Reposted by Artem Zakharchenko
Svelte @svelte.dev · 01/10/2026
svelte.dev/blog/sveltek...
svelte.dev
SvelteKit 3 is here
Get it while it’s hot
516434
Artem Zakharchenko @kettanaito.com · 01/10/2026
Yes! Finally someone noticed!
010
Artem Zakharchenko @kettanaito.com · 01/10/2026
Thanks!
000
Artem Zakharchenko @kettanaito.com · 01/10/2026
Thanks! You should be able to scroll those horizontally.
000
Artem Zakharchenko @kettanaito.com · 01/10/2026
😍 I'm super excited to finally unveil the new version of MSW's website and docs! Wdyt? mswjs.io/?v=3
mswjs.io
Mock Service Worker - API mocking library for browser and Node.js
API mocking library for browser and Node.js
5222
Artem Zakharchenko @kettanaito.com · 01/10/2026
Locked most of my repos whenever slopocalypis broke out.
020
Artem Zakharchenko @kettanaito.com · 30/09/2026
Thank you, Matija! Super excited for you to try it out.
010
Artem Zakharchenko @kettanaito.com · 30/09/2026
I haven't watched this event, but something tells me Google was awfully quiet about their copyright detection bot going haywire and flagging some channels with 200 copyright claims. Or that featuring pieces of music is, somehow, not a fair use per YouTube.
030
Artem Zakharchenko @kettanaito.com · 30/09/2026
Given how everything YouTube does is for advertisers, mark my words when they'll roll out AI-generated creators avatars in a year or so. A/B fits this perfectly. You can try the water, see what percentage of your audience has slop tolerance. Genius.
020
Artem Zakharchenko @kettanaito.com · 30/09/2026
Thank you! Let me know how it goes.
010
Artem Zakharchenko @kettanaito.com · 30/09/2026
I am tremendously grateful to all the sponsors who make my work on MSW possible. I'd like to highlight Chromatic, StackBlitz, CodeRabbit, Workleap, Kraken Tech, and Replay for their substantial contribution to sustainability of the project. Thank you ❤️
090
Artem Zakharchenko @kettanaito.com · 30/09/2026
Full release notes on GitHub: github.com/mswjs/msw/r...
github.com
Release v3.0.0 · mswjs/msw
v3.0.0 (2026-09-28) v3.0.0 (#2692) (2bb4342) @kettanaito @Andarist ⚠️ BREAKING CHANGES MSW is now ESM-only (#2765). Deprecate support for Node.js v18 and v20 (#2729). The minimal supported Node....
150
Artem Zakharchenko @kettanaito.com · 30/09/2026
Please see the Migration guidelines that list all the breaking changes and include codemods to help you automate the migration: mswjs.io/docs/migrat...
mswjs.io
2.x → 3.x
Migration guidelines for version 3.0.
150
Artem Zakharchenko @kettanaito.com · 30/09/2026
I'm excited to announce MSW v3.0! 🥳 - Leaner dependency graph and smaller size; - ESM-only; - Granular entrypoints; - GraphQL subscriptions; - Socket-based network interception in Node.js; - And much more! mswjs.io/blog/introd...
mswjs.io
Introducing MSW 3.0
ESM, GraphQL subscriptions, and the best interception algorithm in the world.
37010
Artem Zakharchenko @kettanaito.com · 30/09/2026
The experience of a Slack invite has cemented its place as one of the most confusing UX I've ever seen. You get an invite and have to choose from existing servers, NOT the server that invited you, if you're external member. An utter failure of design.
190
Artem Zakharchenko @kettanaito.com · 29/09/2026
I got to design two new logos today! Woohoo!
011
Artem Zakharchenko @kettanaito.com · 29/09/2026
:-O
000
Artem Zakharchenko @kettanaito.com · 29/09/2026
@bsky.app could you please not link to the root website from the og image? 🙏 People like pressing big, shiny images. People don't like when it leads them somewhere else entirely from what was intended. Thanks!
010
Artem Zakharchenko @kettanaito.com · 29/09/2026
Come learn tips and tricks of efficient component testing in Vitest from me next week! - Learn how JSDOM works under the hood. - Migrate your tests from JSDOM to Vitest. - Discover how Vitest replaces RTL. Get your tickets 👇 www.frontkon.tech/events/fron...
frontkon.tech
FrontKon
Full-day live conference of the Frontendisti.cz community
141
Artem Zakharchenko @kettanaito.com · 29/09/2026
Now, that's a chunky proposal, indeed.
2131
Artem Zakharchenko @kettanaito.com · 29/09/2026
What I want to do with @bytebinding.com is remind people that software can be personal. Not a subscription, not a hefty price tag, but a professional software that you own. The one that understands your problems and helps you solve them. From one author to thousands others.
030
Artem Zakharchenko @kettanaito.com · 29/09/2026
Looking at you, fetch api!
010
Artem Zakharchenko @kettanaito.com · 28/09/2026
It appears I've got a release that fixes.
A list of software fixes with bullet points and checkmarks, highlighting specific terms in blue such as "forbidden" and "Native."
030
Artem Zakharchenko @kettanaito.com · 26/09/2026
❤️ All of the replies have been magical. I missed social media being, well, social!
110