Igor Savin

7.5K posts

Igor Savin

Igor Savin

@kibertoad

Maintainer of knex.js and a principal engineer at @lokalise. Mostly writing about Node.js stuff.

Lithuania شامل ہوئے Mart 2009
2.3K فالونگ681 فالوورز
Igor Savin
Igor Savin@kibertoad·
@dillon_mulroy bold of you to assume I want to delegate buying stuff to anyone
English
0
0
0
131
Dillon Mulroy
Dillon Mulroy@dillon_mulroy·
funny how we’ve spent the past decade optimizing the hell out of ssr, ppr, isr, ssg, etc just for none of it to matter for agents and the future of product consumption
English
29
5
336
38.2K
Jarred Sumner
Jarred Sumner@jarredsumner·
In the next version of Bun `Bun.WebView` programmatically controls a headless web browser in Bun
Jarred Sumner tweet media
English
126
147
2.7K
252.4K
Igor Savin ری ٹویٹ کیا
Fabian Hiller
Fabian Hiller@FabianHiller·
🚀 Valibot v1.3 is here! ✅ Smarter pipelines with `guard()` for type refinement & `parseBoolean()` for boolish inputs (env vars, forms, query strings). ✅ Result caching via `cache()` / `cacheAsync()` for repeated & async validations. ✅ New validators: `domain()`, `jwsCompact()`, `isrc()` + important compatibility fixes. Huge thanks to @eskimojo, @yslpn and many others for contributing to this release! 🙌 Full details + examples 👉 valibot.dev/blog/valibot-v… npm i valibot@latest #Valibot #TypeScript
English
2
18
105
5.2K
Igor Savin ری ٹویٹ کیا
Guri Singh
Guri Singh@heygurisingh·
🚨Someone just open sourced a full Settlers II-inspired strategy game and it's been in active development for over 20 years. It's called Widelands. And it's not a demo. It's a complete, fully playable real-time strategy game -- with singleplayer campaigns, online multiplayer, custom maps, and more depth than the original game it was inspired by. Here's what you actually get: → Full singleplayer campaigns with scripted scenarios and objectives → Online multiplayer with matchmaking and LAN support → Multiple playable tribes, each with unique buildings, units, and economies → Complex supply chain mechanics -- roads, carriers, warehouses, production chains → Map editor for building and sharing custom maps → Active modding support via Lua scripting → Runs on Windows, macOS, and Linux natively → 27,000+ commits. Still actively maintained in 2026. Here's the wildest part: Settlers II came out in 1996. Ubisoft owns it now and has done nothing meaningful with it in decades. A community of volunteers has been quietly building a better version of it -- completely free -- for over 20 years. Version 1.3 dropped in December 2025. This is what open source game preservation looks like. 2.2K GitHub stars. 79 contributors. 16 releases. 100% Open Source. GPL-2.0 License. (Link in the comments)
Guri Singh tweet media
English
31
160
1.5K
81.2K
Igor Savin
Igor Savin@kibertoad·
@jarredsumner it is not super helpful in serious usage scenarios, unless you have rich featureset like groups, granular concurrency control (including by groups), heartbeat. would you support all that in stdlib?
English
0
0
1
28
Jarred Sumner
Jarred Sumner@jarredsumner·
i still want bun to have a builtin job queue api with redis & postgres backends
English
103
9
1.2K
73.5K
Igor Savin ری ٹویٹ کیا
Evan You
Evan You@youyuxi·
Introducing Void, the Vite-native deployment platform: 🚀 Full-stack SDK ⚙️ Auto-provisioned infra (db, kv, storage, AI, crons, queues...) 🔒 End-to-end type safety 🧩 React/Vue/Svelte/Solid + Vite meta-frameworks 🌐 SSR, SSG, ISR, islands + Markdown 🤖 AI-native tooling ☁️ One-command deploys void.cloud
Evan You tweet media
English
224
530
4.3K
719.3K
Igor Savin ری ٹویٹ کیا
vitest
vitest@vitest_dev·
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!
vitest tweet media
English
6
94
988
58.1K
Igor Savin ری ٹویٹ کیا
Vite ⚡
Vite ⚡@vite_js·
⚡️ Vite 8.0 is here! The most significant architectural change since Vite 2. ⏬ Powered by Rolldown bringing faster production builds and more consistency 🛤️ New features such as tsconfig paths and emitDecoratorMetadata support
Vite ⚡ tweet media
English
75
499
3.5K
285K
Igor Savin ری ٹویٹ کیا
VoidZero
VoidZero@voidzerodev·
🚀Launch Week Update #1: OXLINT JS PLUGIN ALPHA 🏃🏽Run most existing ESLint plugins w/o modification ✒️Write custom lint rules in JS/TS 🩹Get auto-fixes & suggestions from JS plugin rules 📊See JS plugin diagnostics live in your IDE via the language server
overlookmotel@overlook_motel

Oxlint JS plugins have reached alpha. What does that mean? A linter that runs at Rust speed AND supports the existing ecosystem of ESLint plugins. After a great deal of work by many hands, the alpha release signals that we feel it's now ready for usage in real-world projects.

English
11
33
380
39.5K
Igor Savin
Igor Savin@kibertoad·
@bunopus Делается допущение, что весь код, написанный ИИ - хлам, а всё, что пишут люди драгоценно. В куче случаев это не так. В среднем ИИ высокого калибра (Claude Opus, etc) пишет код лучше обычного мидла. Те люди, которые не проверяют выхлоп перед PR'ом, обычно и руками пишут неважно.
Русский
0
0
0
34
Evgeny Kot
Evgeny Kot@bunopus·
Это широко известный факт, но я вам всё равно расскажу: В 1945 году, после первого испытания ядерного оружия («Тринити») и последующих бомбардировок Хиросимы и Нагасаки, радиационный фон в атмосфере Земли изменился. В воздухе появились искусственные радионуклиды, в частности кобальт-60. Проблема в том, что в современных доменных печах используется огромный объем атмосферного воздуха. Радионуклиды из воздуха попадают в расплавленный металл. В результате практически вся сталь, произведенная после 1945 года, обладает слабой, но измеримой радиоактивностью. Для большинства бытовых нужд (строительство, автопром, посуда) этот мизерный фон абсолютно безвреден. Однако он становится непреодолимым препятствием для производства высокочувствительных приборов: типа счетчиков Гейгера и детекторов радиации. Если корпус прибора, предназначенного для измерения радиации, сам «фонит», он будет искажать результаты измерений. Поскольку создать новую сталь без контакта с атмосферой крайне сложно и дорого, основным источником чистого металла стали затонувшие корабли, спущенные на воду до 1945 года. К чему это я? Для того, чтобы взять "чистый академический код", и обучить на нём модель, этот код нужно где-то взять. Но весь код, весь контент, всё, что написано после 2026 (2023?) года – всё будет (или уже) загрязнено ИИ. Так что и будет как со сталью, останутся только книжки Кнута, Фаулера и затонувшие кодовые базы Линукса x.com/gizmo_v/status…
Русский
100
165
2.7K
181.2K
Igor Savin ری ٹویٹ کیا
Andrew Sherman 🇺🇦
Andrew Sherman 🇺🇦@andrii_sherman·
We just released beta.16 with migration updates and fixes. The best part of this release is that we added commutativity checks for PostgreSQL and MySQL (we’ll add other dialects next). Commutativity checks are especially useful for the most painful part of drizzle migrations: working in big teams Here’s what we have in total: 1. No more _journal (auto-upgrade from 0.x) 2. Drop migrations by deleting the folder 3. Apply all migrations, not only those after the last one recorded in the DB 4. Now generate and migrate detect conflicting branches. Example: - Feature 1 adds migration_1 (alter column) - Feature 2 adds migration_2 (alters the same column) - Both land in dev - drizzle-kit flags the conflict, prints a migration tree, and points to what to fix (delete one migration and regenerate) Rule of thumb: resolve conflicts by removing the conflicted migration (and any subsequent ones) from the target branch If everything is commutative, drizzle-kit lets you apply migrations in any order We’re at ~98% - remaining work is adding commutativity checks for other dialects and testing Congrats!
Andrew Sherman 🇺🇦 tweet media
English
9
10
161
7.2K
Igor Savin ری ٹویٹ کیا
Andrew Sherman 🇺🇦
Andrew Sherman 🇺🇦@andrii_sherman·
To be honest, I'm still thinking about what to write about what happened, and whether I should quote something or write a separate post I think this is the right post to quote, because Sam shared a very important part of the collaboration we built with PlanetScale From the beginning, we were always against taking VC funding or any direct buyout of drizzle. From the very start, this was something we felt deeply passionate about. We wanted the freedom to do what we believe is right, and that is something I personally love with all my heart From the beginning, we were investing our own money into drizzle and into the team, and there were many months when we were working at a loss. We found a way to become sustainable, stay 100% bootstrapped, and keep moving at an awesome pace, basically working 24/7. Especially while living through war and not always having enough creative energy because of the constant explosions, all we had left was our love for open source, for drizzle, and for the work we do for the community, being 100% independent and fully ours When we were talking to Sam, we were very clear about our values, about what really matters to us And guess what? Sam and the whole PlanetScale team worked with us for a few months, going through everything we would need from them, how we wanted to structure this, and how we wanted to work together. They applied everything we'd need without any questions. We invested so much effort into making sure drizzle stays independent, that we can continue doing what we want to do, and that we remain free to express our engineering hearts to their fullest potential. Huge thanks to the whole team for making this happen and for making sure we are 100% happy with what this collaboration looks like So yes, we are still the Drizzle Team. We are still doing what we planned to do. We want all developers to have the absolute best DX when working with any SQL database in TypeScript. And a huge thanks to PlanetScale for making sure we won't run out of money, for helping us be here for the long run, and for simply believing in us
Sam Lambert@samlambert

This is the important part. Lately we've seen a number of cynical attempts for companies to steal open source projects. It's disgusting behavior. Drizzle has its own independent roadmap and PlanetScale supports the project by giving the maintainers financial security.

English
13
11
383
31.9K
Igor Savin
Igor Savin@kibertoad·
@matteocollina Are there plans for concurrency management and group concurrency? (so that big tenants don't clog the pipe) pg-boss has very powerful and flexible concurrency configuration that can be used as a reference
English
0
0
2
187
Matteo Collina
Matteo Collina@matteocollina·
Every Node.js developer has lost a background job to a server restart. We just open-sourced @platformatic/job-queue, a new queue library built for reliability from day one. Deduplication, retries, request/response, graceful shutdown. All out of the box. 🧵👇
English
28
74
793
52.7K
Igor Savin ری ٹویٹ کیا
Sarah Dayan
Sarah Dayan@frontstuff_io·
Dinero.js v2.0.0 is out! 🚀 This is a complete rewrite: TypeScript native, tree-shakeable functions, compile-time currency safety, BigInt support, non-decimal currencies, and still zero dependencies. sarahdayan.com/blog/dinerojs-…
Sarah Dayan tweet media
English
5
49
598
28.8K
Igor Savin ری ٹویٹ کیا
Drizzle ORM
Drizzle ORM@DrizzleORM·
As of today, Drizzle has become the most sustainablest ORM on Earth 🚀 PlanetScale hired entire Drizzle core team to work on Drizzle ORM full-time, which is just… WOW! I mean, I can’t believe this is happening and how amazing this is going to be... Let’s address the most important things: ▪︎ The governance of Drizzle does not and will not change ▪︎ Drizzle remains independent and open-source ▪︎ We will now work more full-timer on Drizzle ORM, Kit and Studio ▪︎ Our social media manager(me) will finally have a salary ▪︎ Drizzle v1 is going to be amazing Thank you all for using Drizzle, without you there won’t be 1.2k GitHub issues and 355 PRs, we’d live a happy life, touching grass ❤️
English
332
240
4K
284.9K
Igor Savin
Igor Savin@kibertoad·
@domenic "assuming that every time the spec says to create an object, an actual garbage-collected object must be allocated" what would be the correct way to interpret it? what other kind of objects exist, and what else can be meant by "create"?
English
1
0
0
147
Igor Savin
Igor Savin@kibertoad·
LocalStack used to be the golden standard for local AWS testing. Their upcoming changes mean CI now requires credits, and enterprise usage needs a paid license. That's why I've built fauxqs - a TypeScript SQS/SNS/S3 emulator. It's the first fully-featured one that's fully usable as an in-process library in Node.j (no Docker, no sidecar, just import and go). There is also a Docker image available for those who prefer that, of course. It covers the full SQS lifecycle (FIFO, DLQ, long polling), SNS with filter policies and fan-out, S3 with multipart uploads and checksums. Entire test suite for message-queue-toolkit passes, as well as the one for The TypeScript Monorepo in Lokalise, so it's been battle-tested against real-world messaging patterns. Some things I'm particularly happy with: a spy system that lets you await async events instead of polling, non-destructive queue inspection, and sub-second startup. It's faster than Localstack, and uses all available AWS documentation to implement input validation rules as closely to the real deal as possible. The whole thing is free and MIT licensed, and always will be. `npx fauxqs` to try it, blog post with details in the comments.
English
1
1
2
150