{"slug": "vitest", "name": "Vitest", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 4, "commenters": 6, "warners": 1, "score": 2.767, "rising": -1.31, "first": "2025-12-29", "latest": "2026-10-02", "why": "After using a lot of others, including jest and node's built in one, I love vitest.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 1, "compare": 0, "warn": 1}, "spark": [0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "After using a lot of others, including jest and node's built in one, I love vitest.", "icon": true, "domain": null, "github_repo": null, "official_url": "https://vitest.dev", "pricing": "", "aliases": ["Vitest", "vitest"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 780230000, "item_id": 48764375, "url": "https://news.ycombinator.com/item?id=48764375", "by": "bhouston", "date": "2026-07-02", "stance": "recommend", "quote": "I have my 3000 test project suite completing in 15 seconds on my MacBook Air M3.  It is pretty sweet with that setup.", "excerpt": "I do recommend turning off \"isolate\" for as much of your code base as possible when it makes sense. And I recommend ensuring \"maxWorkers\" is being used properly, I prefer something like 60% of my totals cores as the number of workers to use. And use a top level vitest start so it properly runs all the packages in a pipeline rather than as separate vitest runs (which would mess up the maxWorkers optimization anyhow.) ", "context": "", "use_case": "running test suite", "switched_from": "", "story": "Vite+ Beta"}, {"id": 780195312, "item_id": 48762207, "url": "https://news.ycombinator.com/item?id=48762207", "by": "bhouston", "date": "2026-07-02", "stance": "recommend", "quote": "After using a lot of others, including jest and node's built in one, I love vitest.", "excerpt": "> But I have zero clue what those other tools are. The incorporated tools are actually really amazing: - vitest, an ultra fast test runner. After using a lot of others, including jest and node's built in one, I love vitest. - oxlint, replaces eslint but is compatible with its file format and ultra fast, since it isn't written JavaScript. I tried biome, but I found oxlint to have more rules and the eslint compatibilit", "context": "", "use_case": "test runner", "switched_from": "", "story": "Vite+ Beta"}, {"id": 780172993, "item_id": 48760812, "url": "https://news.ycombinator.com/item?id=48760812", "by": "KronisLV", "date": "2026-07-02", "stance": "recommend", "quote": "I love Vite, Vitest, Oxlint and Oxfmt", "excerpt": "I love Vite, Vitest, Oxlint and Oxfmt and look in their direction for most of my new projects! I hope these folks manage to get a bunch of money and can fund the continued development for at least the next decade. Sure beats opening some ancient project and seeing some mix of Gulp, Grunt, webpack and a bunch of other disjointed stuff (I migrated that one over to also use the newer stack).", "context": "", "use_case": "testing", "switched_from": "", "story": "Vite+ Beta"}, {"id": 742981187, "item_id": 46436324, "url": "https://news.ycombinator.com/item?id=46436324", "by": "kanchanepally", "date": "2025-12-30", "stance": "recommend", "quote": "using Vitest", "excerpt": "I\u2019ve pushed a full-stack educational platform for parents, My DigitAlly, to production using what we call \"Systematic AI Collaboration\" (a matured version of vibe-coding). It isn't a static site; it\u2019s a production app with: Full Auth: Google OAuth and email/password. Engagement Engine: A node-cron system that automatically sends weekly tips to 200+ subscribers every Saturday. Dynamic Curriculum: A 5-block lesson flow", "context": "", "use_case": "test-driven development", "switched_from": "", "story": "Ask HN: Any example of successful vibe-coded product?"}, {"id": 742861120, "item_id": 46428820, "url": "https://news.ycombinator.com/item?id=46428820", "by": "syspec", "date": "2025-12-29", "stance": "recommend", "quote": "I like Vitest browser mode, but it's a pain to just \"detach\" for a specific frame", "excerpt": "I used to do this with Karma test runner. The best part was how it didn't try to capture everything, so debugging with breakpoints was really easy. I like Vitest browser mode, but it's a pain to just \"detach\" for a specific frame and run that test in isolation, with my actual breakpoints.", "context": "", "use_case": "browser testing", "switched_from": "Karma", "story": "Vitest Browser Mode Guide"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 798905873, "item_id": 49931617, "url": "https://news.ycombinator.com/item?id=49931617", "by": "weitendorf", "date": "2026-10-02", "stance": "warn", "quote": "vitest and object lifecycle crap", "excerpt": "I strongly recommend vanilla html, js, and css. For me the benefits of having no npm and related ecosystem tools and no dependencies far outweigh any benefits you get from switching to specific framework. It took me just as long to learn modern css, html, and basically all the browser APIs as it did to learn how to setup+build+modify+deploy my svelte-vscodeextension-webview project without getting bogged down in the ", "context": "", "use_case": "", "switched_from": "", "story": "SvelteKit 3"}]}], "who": [], "tags": [], "use_cases": ["running test suite", "test runner", "testing", "mocking postgres and redis in tests", "test-driven development", "browser testing"], "compared": [{"slug": "oxlint", "name": "oxlint", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "oxfmt", "name": "oxfmt", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48759761", "title": "Vite+ Beta", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=49926536", "title": "SvelteKit 3", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46484805", "title": "Ask HN: What's the future of software testing and QA?", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46434821", "title": "Ask HN: Any example of successful vibe-coded product?", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46380697", "title": "Vitest Browser Mode Guide", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 2}, "2026-01": {"neutral": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {"recommend": 2}, "2026-08": {}, "2026-09": {}, "2026-10": {"warn": 1}}, "quotes": [{"id": 798905873, "item_id": 49931617, "url": "https://news.ycombinator.com/item?id=49931617", "by": "weitendorf", "date": "2026-10-02", "stance": "warn", "quote": "vitest and object lifecycle crap", "excerpt": "I strongly recommend vanilla html, js, and css. For me the benefits of having no npm and related ecosystem tools and no dependencies far outweigh any benefits you get from switching to specific framework. It took me just as long to learn modern css, html, and basically all the browser APIs as it did to learn how to setup+build+modify+deploy my svelte-vscodeextension-webview project without getting bogged down in the ", "context": "", "use_case": "", "switched_from": "", "story": "SvelteKit 3"}, {"id": 780230000, "item_id": 48764375, "url": "https://news.ycombinator.com/item?id=48764375", "by": "bhouston", "date": "2026-07-02", "stance": "recommend", "quote": "I have my 3000 test project suite completing in 15 seconds on my MacBook Air M3.  It is pretty sweet with that setup.", "excerpt": "I do recommend turning off \"isolate\" for as much of your code base as possible when it makes sense. And I recommend ensuring \"maxWorkers\" is being used properly, I prefer something like 60% of my totals cores as the number of workers to use. And use a top level vitest start so it properly runs all the packages in a pipeline rather than as separate vitest runs (which would mess up the maxWorkers optimization anyhow.) ", "context": "", "use_case": "running test suite", "switched_from": "", "story": "Vite+ Beta"}, {"id": 780195312, "item_id": 48762207, "url": "https://news.ycombinator.com/item?id=48762207", "by": "bhouston", "date": "2026-07-02", "stance": "recommend", "quote": "After using a lot of others, including jest and node's built in one, I love vitest.", "excerpt": "> But I have zero clue what those other tools are. The incorporated tools are actually really amazing: - vitest, an ultra fast test runner. After using a lot of others, including jest and node's built in one, I love vitest. - oxlint, replaces eslint but is compatible with its file format and ultra fast, since it isn't written JavaScript. I tried biome, but I found oxlint to have more rules and the eslint compatibilit", "context": "", "use_case": "test runner", "switched_from": "", "story": "Vite+ Beta"}, {"id": 780172993, "item_id": 48760812, "url": "https://news.ycombinator.com/item?id=48760812", "by": "KronisLV", "date": "2026-07-02", "stance": "recommend", "quote": "I love Vite, Vitest, Oxlint and Oxfmt", "excerpt": "I love Vite, Vitest, Oxlint and Oxfmt and look in their direction for most of my new projects! I hope these folks manage to get a bunch of money and can fund the continued development for at least the next decade. Sure beats opening some ancient project and seeing some mix of Gulp, Grunt, webpack and a bunch of other disjointed stuff (I migrated that one over to also use the newer stack).", "context": "", "use_case": "testing", "switched_from": "", "story": "Vite+ Beta"}, {"id": 743763280, "item_id": 46485205, "url": "https://news.ycombinator.com/item?id=46485205", "by": "vivzkestrel", "date": "2026-01-03", "stance": "neutral", "quote": "i have had a lot of trouble with vitest mocks for postgres and redis so far.", "excerpt": "LLMS are still very bad at mocking external dependencies. i have had a lot of trouble with vitest mocks for postgres and redis so far. I still have a playwright test for an SSR page that does a server request. At the moment it still doesn actual request to the server and none of the LLMs have managed to fix that", "context": "", "use_case": "mocking Postgres and Redis in tests", "switched_from": "", "story": "Ask HN: What's the future of software testing and QA?"}, {"id": 742981187, "item_id": 46436324, "url": "https://news.ycombinator.com/item?id=46436324", "by": "kanchanepally", "date": "2025-12-30", "stance": "recommend", "quote": "using Vitest", "excerpt": "I\u2019ve pushed a full-stack educational platform for parents, My DigitAlly, to production using what we call \"Systematic AI Collaboration\" (a matured version of vibe-coding). It isn't a static site; it\u2019s a production app with: Full Auth: Google OAuth and email/password. Engagement Engine: A node-cron system that automatically sends weekly tips to 200+ subscribers every Saturday. Dynamic Curriculum: A 5-block lesson flow", "context": "", "use_case": "test-driven development", "switched_from": "", "story": "Ask HN: Any example of successful vibe-coded product?"}, {"id": 742861120, "item_id": 46428820, "url": "https://news.ycombinator.com/item?id=46428820", "by": "syspec", "date": "2025-12-29", "stance": "recommend", "quote": "I like Vitest browser mode, but it's a pain to just \"detach\" for a specific frame", "excerpt": "I used to do this with Karma test runner. The best part was how it didn't try to capture everything, so debugging with breakpoints was really easy. I like Vitest browser mode, but it's a pain to just \"detach\" for a specific frame and run that test in isolation, with my actual breakpoints.", "context": "", "use_case": "browser testing", "switched_from": "Karma", "story": "Vitest Browser Mode Guide"}]}