Artem Zakharchenko
@kettanaito
Software engineer. Helping you master automated testing at . Author mswjs.io. Instructor egghead.io. I tell stories @zakarcher.com. My debut book "LOGGERHEADS" it out 👇
Playing around with the first-class SMTP API in MSW. Please share your thoughts! Sharing some of the reasoning behind the API below.
New network interception architecture enables working with things like SMTP. Here's an SMTP interceptor I was fiddling with today that helps you intercept, assert, and mock outgoing emails.
What if you could mock database connections regardless of your database client? No in-memory instances, no Dockers for simple unit tests. Explain to me why this is a bad idea.
I've got big plans on what the network interception should be able to do. Big plans.
Thank you to Spotify for supporting my work on MSW. You are a huge reason why API mocking is getting better for everybody on the web. This year, we are rolling out something that nobody has ever even tried to achieve before, and your support makes that possible. ❤️
There's a custom matcher I designed for a few of my projects: expect.optional(). Its purpose is to validate present values but not fail if they are missing. There's no built-in way to do that in Vitest.
Designers, I implore you, stop robbing your typography of kerning. Spacing between symbols is how our brains split them for easier processing. Crowding letters not only hurts legibility but also looks extremely ugly.
Still have the final export of my first book sitting on my desktop. I like it there. It was as soul-crushing of an experience to create it as it was fun. I built a tiny EPUB editor so I could have the digital edition exactly the way I wanted to. It turned out great.
1,000 pull requests have been closed in MSW. What a journey. Here's to another 1,000! API mocking on the web has a lot to improve and I'll be bringing those improvements to your tests in the near future. Thank you to all the contributors who made this number possible. You rock.
RIP people who still support Node.js v20 and want to benefit from stricter pnpm. I don't even see the way out of this given the lockfile can only be in one state. Back to pnpm 9 I go...
Created a gmail account for a product idea. Never used it for anything. Somehow, that's a TOS violation. Okay..?
I'm sure glad GitHub Actions are free for open source. Imagine getting slapped with a bill because Playwright randomly decided to take 8m to download browser binaries.
Switching my focus to open source in July. Much to do, much to do.
It's small moments like this that make building software special.
I'ma be real, this bell is so suspicious I want to reinstall my OS after visiting this site.
Fun fact: I spent so much time running tests to ensure Byte Binding ships at its best state for beta testers that I maxed out 2,000 free minutes of CI uptime. Worth it.
Byte Binding is a fully online app with a one-time purchase. No subscriptions, no servers, no fluff. Personal software, forever yours. As a software engineer and an indie author myself, this is what an EPUB experience should've always looked like. Now it finally does.
Byte Binding comes with full support of custom styles, images, and fonts. It doesn't require any HTML/CSS knowledge and produces optimized and compressed books, which results in a smaller footprint when distributing them worldwide.
Byte Binding embraces full WYSIWYG editing with browser-based rendering to preview your book nearly identically to how it's going to look like for your readers. I've spent years studying the EPUB format so whatever layout you choose to go with will be valid everywhere.
I'm announcing Byte Binding—a modern, accessible, and powerful EPUB editor. This is for every author who's tired of errors when uploading their books to storefronts. For every creative soul who wishes their editor could do more. Because your digital books deserve better.
Here's another example: utilities. I love test utilities. The problem here is WHERE they are introduced. Most utilities belong in your test runner's fixtures, be it Vitest or Playwright. But your agent spams them inlined atop of your test suite.
One thing that drives me crazy is how bad AI is at testing. Today's exhibit: over-engineering. Your agent will most definitely start treating your tests as regular code and over-engineer an insane amount of things that have no business being in tests. For example:
The distribution channels are ready for the closed beta. Tightening up the last screws, fixing bugs, and adding tests to ensure smooth sailing. Exciting!