Pinned
After five years of writing, I’ve finally finished my book! It took a lot of energy (and coffee!) to complete, but it’s finally done, and I’m really happy with the result. sapegin.me/book/
Artem Sapegin
@sapegin.me
A coffee first frontend engineer at Stage+, creator of React Styleguidist, and award-losing photographer. Author of Washing your code: https://sapegin.me/book/. Learning to cook at https://tacohuaco.co.
97 followers91 following195 posts
Pinned
After five years of writing, I’ve finally finished my book! It took a lot of energy (and coffee!) to complete, but it’s finally done, and I’m really happy with the result. sapegin.me/book/
Artem Sapegin reposted
Artem Sapegin reposted
Artem Sapegin reposted
⚡️ Vite 8.0 is here! The most significant architectural change since Vite 2. ⏬ Powered by @rolldown.rs bringing faster production builds and more consistency 🛤️ New features such as tsconfig paths and emitDecoratorMetadata support vite.dev/blog/announc...
Artem Sapegin reposted
Vitest 4.1 is out! 🚀 ✅ Vite 8 support from day 1 🏷️ Test tags to organize, filter & apply shared options 🪝 New hooks for easier tracing, transactions and AsyncLocalStorage 🔍 Async leak detection 🤖 Agent reporter to reduce token usage And much more! Full blog post at vitest.dev/blog/vitest-...
Artem Sapegin reposted
🚀Launch Week Update #1 🚀 OXLINT JS PLUGINS ALPHA 🏃🏽Run most ESLint plugins w/ 0 changes ✒️Write custom lint rules in JS/TS 🩹Get auto-fixes & suggestions from JS plugin rules 📊See JS plugin diagnostics live in your IDE oxc.rs/blog/2026-03...
Artem Sapegin reposted
Artem Sapegin reposted
Artem Sapegin reposted
another good example of `tabular-nums` in action. must have for columns of right-aligned numbers (tables, invoices, dashboards). normal table's columns have ragged left edges as digits swap between narrow ("1") and wide ("0", "8") glyphs. where tabular stays perfectly flush ~
`tabular-nums` should be the default for any number that updates ( timers, counters, prices, percentages, scores, live data etc ). you can enable this tnum OpenType feature using the CSS property `font-variant-numeric`. .tabular-nums { font-variant-numeric: tabular-nums; }
Artem Sapegin reposted
✨ What's New in ViteLand: February 2026 Recap ◆ Oxfmt Beta: 100% Prettier conformance ◆ @vite.dev 8 includes devtools ◆ @vitest.dev 4.1 beta adds aroundEach/aroundAll hooks ◆ @rolldown.rs becomes 9.6% faster ◆ Oxlint now supports 59/61 ts-eslint rules ◆ NestJS migrates to Vitest ◆ and much more 👀
Artem Sapegin reposted
Artem Sapegin reposted
❌ Instead of: if (map.has(key)) { return map.get(key); } map.set(key, value); return value; ✅ Write: return map.getOrInsert(key, value); This now works in all browsers!
Artem Sapegin reposted
Replying to @stephaniewalter.bsky.social
Also, I've prepared a talk to help designers, who are tired of having accessibility pushed later, or ignored. February 25, 9am ET (3pm CET) I'll open the design track at #axecon with my talk "How to Convince People to Care and Invest in Accessibility" : www.deque.com/axe-con/sess...
Artem Sapegin reposted
Little reminder that axe-con, organised by @deque.com is this week!! It's a free online, two days (February 24 25) event, with a very nice line up of talks about accessibility and inclusive design. Want to learn about accessibility? Register, check them live, or catch the replays! #Accessibility
I do agree with this part: > So when more and more people tell me they no longer know what code is in their own codebase, I feel like something is very wrong here and it’s time to reflect.
Today Thorsten Ball said he's the bottleneck. I too am the bottleneck and it made me think. lucumr.pocoo.org/2026/2/13/th...
Artem Sapegin reposted
Dear developers, Please respect the reduced-motion preferences of your users. I'm tired of your websites making me nauseous. Motion is fun until it makes your users sick. Here you go: developer.mozilla.org/en-US/docs/W...
Artem Sapegin reposted
Artem Sapegin reposted
Replying to @trost.codes
Meanwhile another LLM agent was flying under the radar and had a bunch of its work merged in. socket.dev/blog/ai-agen...
Artem Sapegin reposted
Obsidian uses local files, so all your standard terminal commands work for editing/moving/searching/etc Obsidian CLI adds everything else: - interacting with the UI - internal functions e.g. base queries, orphans, etc - devtools, console, screenshots, eval, etc See the CLI docs!
Anything you can do in Obsidian you can do from the command line. Obsidian CLI is now available in 1.12 (early access).
Artem Sapegin reposted
For almost 10 years we published daily web platform news in Russian. I always wanted to do the same in English, and five months ago I started. Yesterday I hit the 100th news on @web-standards.dev 🎉 Here’s a story behind the project. Of course, built with @11ty.dev 😎 pepelsbey.dev/articles/web...
Artem Sapegin reposted
Testing accessibility issues at components level is a good first step to make your product accessible. Hidde De Vries shares 5 quick tests you can run: - test component keyboard accessibility
I’ve started posting my photos again, this time on Substack — follow me if you’re there: substack.com/@sapegin
Artem Sapegin reposted
Do you use Polypane to check for Accessibility? Jules Ernst maintains an overview of which WCAG SCs Polypane helps with, and he just updated it with all the latest features in Polypane. An invaluable resource, thanks Jules! www.200ok.nl/tips/polypan...
Artem Sapegin reposted
My book, Accessibility For Everyone, is now free and online as a website. accessibilityforeveryone.site The book was first published by A Book Apart in 2017 but it holds up! It covers web accessibility for designers, developers, content folks, and really everyone who works in tech.
> This year in iOS 26, some UI elements use the HDR screen to make some elements and highlights brighter than 100% white. Ooooh, that's why it looks so bad and annoying... Even turned on Reduce white point doesn't help... willhbr.net/2025/10/20/l...
Or do whatever works for you. Arrow keys are good enough for this use case, and I can remember them. I have fzf installed for many years and hardly used it because it takes more mental effort and not worth it most of the time. mastodon.cloud/@mitchellh@h...
I like the idea of autoclosing pull requests created using AI. Such pull requests are like prompting LLM using a slow and unreliable intermediary. They don’t provide any value, but take a lot of time and mental effort. www.linkedin.com/posts/steve-...
Another example: github.com/ghostty-org/...
Artem Sapegin reposted
Nikita Prokopov points out all the inconsistencies, in the icons of Tahoe, the new Mac operating system. The “fifty shades of new” made my day. If you can’t find a good metaphor, using no icon is better than using a bad, confusing, or nonsensical icon. tonsky.me/blog/tahoe-i...
Artem Sapegin reposted
I’m often asked for accessibility resources for beginners. @laurakalbag.bsky.social's book has been my go to. It’s clear, practical, and works for designers, developers, and anyone involved in building products. The best part: it’s now free and available online. Bookmark it. Read it. Share it!
Artem Sapegin reposted
Good article on Temporal API — it looks very promising and solves many of the Date issues: piccalil.li/blog/date-is...
Artem Sapegin reposted
Artem Sapegin reposted
"it's an internal app so it doesn't need to be responsive" is something I hear so much. Just because you're forcing your employees to deal with it doesn't mean they don't suffer.
The amount of internal software that just has broken responsive support? Astronomical. “But it is just FRONTEND IT IS SO EASY” yeah but when all of your tools can’t handle a normal window size don’t come for me
Artem Sapegin reposted
Artem Sapegin reposted
Are we stuck with the same Desktop UX forever? This is a really interesting talk from a UX expert directed at programmers. Linux design is overly eager to throw the baby out with the bathwater. desktop UX regressed in the past 15 years Browser UX is stuck too. www.youtube.com/watch?v=1fZT...
I feel this is the unfortunate trend in modern software, to bend users to the only correct way to use their software and punish those users who want or need some adjustments; and they refuse to accept that some user _do need_ accommodations.
This is already a bit weird; isn’t the whole sales pitch with Claude Code that we *don’t* need to use an IDE anymore? If I’m gonna write the prompt in Cursor, why don’t I just use Cursor’s agent mode? But anyway, I press the shortcut and a new Cursor file opens:
Artem Sapegin reposted