#ESLint
set up eslint*
September 29, 2026 at 5:05 PM
Emacs briefly loomed it's paws on top of me, as I was struggling to get eslint lsp to work on helix

Close call
View in bunny log
log.bunniesin.space
September 29, 2026 at 4:54 PM
⏱ 2 days of lead time on npm eslint-plugin-skywagon-web@100.0.0: we flagged it, then MAL-2026-17215 confirmed it.

#flaggedfirst #npm #malware #supplychainsecurity
Flagged first: npm eslint-plugin-skywagon-web@100.0.0
PkgRadar flagged this 2 days before MAL-2026-17215 was published. See the dated receipt and static evidence.
pkgradar.com
September 28, 2026 at 8:24 PM
🙌 SEVEN (and a half) YEARS after issue filing, we have a 'no-unsafe-enun-assignments' rule in @typescript-eslint.io!

It detects accidentally using a literal instead of an enum value. Which I've seen lots of bugs from over those years!

github.com/typescript-e... -> typescript-eslint@8.71.0 ✨
feat(eslint-plugin): [no-unsafe-enum-assignment] add rule by JoshuaKGoldberg · Pull Request #12732 · typescript-eslint/typescript-eslint
PR Checklist Addresses an existing open issue: fixes Rule proposal: Disallow literals where enums are expected #308 That issue was marked as accepting prs Steps in Contributing were taken If t...
github.com
September 28, 2026 at 7:09 PM
build(deps-dev): bump the dev-dependencies group across 1 directory w…
build(deps-dev): bump the dev-dependencies group across 1 directory w… · bluesky-social/atproto@5019f55
build(deps-dev): bump the dev-dependencies group across 1 directory with 25 updates (#5556) * build(deps-dev): bump the dev-dependencies group across 1 directory with 25 updates Bumps the dev-dependencies group with 25 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@changesets/cli](https://github.com/changesets/changesets/tree/HEAD/packages/cli) | `3.0.2` | `3.0.3` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.69.0` | `8.70.1` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.69.0` | `8.70.1` | | [eslint](https://github.com/eslint/eslint) | `10.9.1` | `10.11.0` | | [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) | `30.5.1` | `30.5.2` | | [@bufbuild/buf](https://github.com/bufbuild/buf) | `1.72.0` | `1.73.0` | | [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.102.8` | `5.103.2` | | [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.8` | `19.3.0` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.18` | `19.3.0` | | [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.8` | `19.3.0` | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.2.7` | `19.3.0` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.2.2` | `8.3.1` | | [@lingui/cli](https://github.com/lingui/js-lingui/tree/HEAD/packages/cli) | `6.6.0` | `6.8.0` | | [@lingui/conf](https://github.com/lingui/js-lingui/tree/HEAD/packages/conf) | `6.6.0` | `6.8.0` | | [@lingui/core](https://github.com/lingui/js-lingui/tree/HEAD/packages/core) | `6.6.0` | `6.8.0` | | [@lingui/format-po](https://github.com/lingui/js-lingui/tree/HEAD/packages/format-po) | `6.6.0` | `6.8.0` | | [@lingui/react](https://github.com/lingui/js-lingui/tree/HEAD/packages/react) | `6.6.0` | `6.8.0` | | [@lingui/vite-plugin](https://github.com/lingui/js-lingui/tree/HEAD/packages/vite-plugin) | `6.6.0` | `6.8.0` | | [@tanstack/react-router](https://github.com/TanStack/router/tree/HEAD/packages/react-router) | `1.170.32` | `1.170.39` | | [@tanstack/react-router-devtools](https://github.com/TanStack/router/tree/HEAD/packages/react-router-devtools) | `1.167.1` | `1.167.2` | | [@tanstack/router-plugin](https://github.com/TanStack/router/tree/HEAD/packages/router-plugin) | `1.168.35` | `1.168.40` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.41.0` | `1.48.0` | | [react-error-boundary](https://github.com/bvaughn/react-error-boundary) | `6.1.4` | `6.1.6` | | [tailwind-merge](https://github.com/dcastil/tailwind-merge/tree/HEAD/packages/tailwind-merge) | `3.6.0` | `3.7.0` | | [rolldown](https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown) | `1.2.7` | `1.2.11` | Updates `@changesets/cli` from 3.0.2 to 3.0.3 - [Release notes](https://github.com/changesets/changesets/releases) - [Changelog](https://github.com/changesets/changesets/blob/main/packages/cli/CHANGELOG.md) - [Commits](https://github.com/changesets/changesets/commits/@changesets/cli@3.0.3/packages/cli) Updates `@typescript-eslint/eslint-plugin` from 8.69.0 to 8.70.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.69.0 to 8.70.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.1/packages/parser) Updates `eslint` from 10.9.1 to 10.11.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.9.1...v10.11.0) Updates `jest` from 30.5.1 to 30.5.2 - [Release notes](https://github.com/jestjs/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jestjs/jest/commits/v30.5.2/packages/jest) Updates `@bufbuild/buf` from 1.72.0 to 1.73.0 - [Release notes](https://github.com/bufbuild/buf/releases) - [Changelog](https://github.com/bufbuild/buf/blob/main/CHANGELOG.md) - [Commits](https://github.com/bufbuild/buf/compare/v1.72.0...v1.73.0) Updates `@tanstack/react-query` from 5.102.8 to 5.103.2 - [Release notes](https://github.com/TanStack/query/releases) - [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md) - [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.103.2/packages/react-query) Updates `react` from 19.2.8 to 19.3.0 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.3.0/packages/react) Updates `@types/react` from 19.2.18 to 19.3.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `react-dom` from 19.2.8 to 19.3.0 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.3.0/packages/react-dom) Updates `@types/react-dom` from 19.2.7 to 19.3.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `vite` from 8.2.2 to 8.3.1 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.3.1/packages/vite) Updates `@lingui/cli` from 6.6.0 to 6.8.0 - [Release notes](https://github.com/lingui/js-lingui/releases) - [Changelog](https://github.com/lingui/js-lingui/blob/main/packages/cli/CHANGELOG.md) - [Commits](https://github.com/lingui/js-lingui/commits/v6.8.0/packages/cli) Updates `@lingui/conf` from 6.6.0 to 6.8.0 - [Release notes](https://github.com/lingui/js-lingui/releases) - [Changelog](https://github.com/lingui/js-lingui/blob/main/packages/conf/CHANGELOG.md) - [Commits](https://github.com/lingui/js-lingui/commits/v6.8.0/packages/conf) Updates `@lingui/core` from 6.6.0 to 6.8.0 - [Release notes](https://github.com/lingui/js-lingui/releases) - [Changelog](https://github.com/lingui/js-lingui/blob/main/packages/core/CHANGELOG.md) - [Commits](https://github.com/lingui/js-lingui/commits/v6.8.0/packages/core) Updates `@lingui/format-po` from 6.6.0 to 6.8.0 - [Release notes](https://github.com/lingui/js-lingui/releases) - [Changelog](https://github.com/lingui/js-lingui/blob/main/packages/format-po/CHANGELOG.md) - [Commits](https://github.com/lingui/js-lingui/commits/v6.8.0/packages/format-po) Updates `@lingui/react` from 6.6.0 to 6.8.0 - [Release notes](https://github.com/lingui/js-lingui/releases) - [Changelog](https://github.com/lingui/js-lingui/blob/main/packages/react/CHANGELOG.md) - [Commits](https://github.com/lingui/js-lingui/commits/v6.8.0/packages/react) Updates `@lingui/vite-plugin` from 6.6.0 to 6.8.0 - [Release notes](https://github.com/lingui/js-lingui/releases) - [Changelog](https://github.com/lingui/js-lingui/blob/main/packages/vite-plugin/CHANGELOG.md) - [Commits](https://github.com/lingui/js-lingui/commits/v6.8.0/packages/vite-plugin) Updates `@tanstack/react-router` from 1.170.32 to 1.170.39 - [Release notes](https://github.com/TanStack/router/releases) - [Changelog](https://github.com/TanStack/router/blob/main/packages/react-router/CHANGELOG.md) - [Commits](https://github.com/TanStack/router/commits/@tanstack/react-router@1.170.39/packages/react-router) Updates `@tanstack/react-router-devtools` from 1.167.1 to 1.167.2 - [Release notes](https://github.com/TanStack/router/releases) - [Changelog](https://github.com/TanStack/router/blob/main/packages/react-router-devtools/CHANGELOG.md) - [Commits](https://github.com/TanStack/router/commits/@tanstack/react-router-devtools@1.167.2/packages/react-router-devtools) Updates `@tanstack/router-plugin` from 1.168.35 to 1.168.40 - [Release notes](https://github.com/TanStack/router/releases) - [Changelog](https://github.com/TanStack/router/blob/main/packages/router-plugin/CHANGELOG.md) - [Commits](https://github.com/TanStack/router/commits/@tanstack/router-plugin@1.168.40/packages/router-plugin) Updates `lucide-react` from 1.41.0 to 1.48.0 - [Release notes](https://github.com/lucide-icons/lucide/releases) - [Commits](https://github.com/lucide-icons/lucide/commits/1.48.0/packages/lucide-react) Updates `react-error-boundary` from 6.1.4 to 6.1.6 - [Release notes](https://github.com/bvaughn/react-error-boundary/releases) - [Commits](https://github.com/bvaughn/react-error-boundary/compare/6.1.4...6.1.6) Updates `tailwind-merge` from 3.6.0 to 3.7.0 - [Release notes](https://github.com/dcastil/tailwind-merge/releases) - [Commits](https://github.com/dcastil/tailwind-merge/commits/tailwind-merge@3.7.0/packages/tailwind-merge) Updates `rolldown` from 1.2.7 to 1.2.11 - [Release notes](https://github.com/rolldown/rolldown/releases) - [Changelog](https://github.com/rolldown/rolldown/blob/main/CHANGELOG.md) - [Commits](https://github.com/rolldown/rolldown/commits/v1.2.11/packages/rolldown) --- updated-dependencies: - dependency-name: "@changesets/cli" dependency-version: 3.0.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.70.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@typescript-eslint/parser" dependency-version: 8.70.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: eslint dependency-version: 10.11.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: jest dependency-version: 30.5.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@bufbuild/buf" dependency-version: 1.73.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@tanstack/react-query" dependency-version: 5.103.2 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: react dependency-version: 19.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@types/react" dependency-version: 19.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: react-dom dependency-version: 19.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@types/react-dom" dependency-version: 19.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: vite dependency-version: 8.3.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@lingui/cli" dependency-version: 6.8.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@lingui/conf" dependency-version: 6.8.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@lingui/core" dependency-version: 6.8.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@lingui/format-po" dependency-version: 6.8.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@lingui/react" dependency-version: 6.8.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@lingui/vite-plugin" dependency-version: 6.8.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: "@tanstack/react-router" dependency-version: 1.170.39 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@tanstack/react-router-devtools" dependency-version: 1.167.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: "@tanstack/router-plugin" dependency-version: 1.168.40 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: lucide-react dependency-version: 1.48.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: react-error-boundary dependency-version: 6.1.6 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: tailwind-merge dependency-version: 3.7.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: rolldown dependency-version: 1.2.11 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> * Sync changeset with Dependabot update --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
github.com
September 28, 2026 at 5:55 PM
open vs isOpen < fun bug I saw recently, while renaming the boolean prop I missed one place and eslint didn't catch it, because open is a method of the Window interface 🤷‍♀️ Looked legit, but broke the app on prod. Turns out naming conventions are important 💡
#devfrustrations #makevariablenamescorrect
September 27, 2026 at 6:50 PM
Time hit some ⚾️ 🧢 I guess
September 27, 2026 at 5:45 AM
Split Claude Code hooks into two tiers. Type check and lint after every edit. Full tests, coverage, and complexity gate on Stop. And check stop_hook_active, or a blocking Stop hook keeps firing until you kill the terminal.

youtu.be/wU2SFAbnL3s
Claude Code Hooks: Stop Bad AI Code with TypeScript, ESLint, and Vitest
📘Complete Claude Code & Coding Agents Course 👉 https://trk.udemy.com/PzbLxN 📘Complete JavaScript Guide (Beginner + Advanced) 👉 https://trk.udemy.com/bOoJnx 📘NodeJS - The Complete Guide (MVC,…
youtu.be
September 25, 2026 at 5:21 PM
eslint-plugin-vuetify v2.7.3 is out.

Typography rule fixes for deprecated classes and legacy utilities.

https://vtfy.link/eslint-plugin-vuetify-v2-7-3
September 24, 2026 at 4:17 PM
Resolve react hooks `exhaustive-deps` JS lint warnings (mjankowski)
https://github.com/mastodon/mastodon/pull/40686
Resolve react hooks `exhaustive-deps` JS lint warnings by mjankowski · Pull Request #40686 · mastodon/mastodon
https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
github.com
September 24, 2026 at 3:46 PM
i’ve loved using the xo ecosystem for years but it’s never been easy to add to @nextjs.org apps

so i created eslint-config-xo-next

supports eslint 10 and tailwind. no plugin or parser conflicts. no unmaintained plugins. no need for @eslint/compat.

github.com/patrik-csak/...
GitHub - patrik-csak/eslint-config-xo-next: ESLint shareable config for Next.js to be used with eslint-config-xo-react
ESLint shareable config for Next.js to be used with eslint-config-xo-react - patrik-csak/eslint-config-xo-next
github.com
September 24, 2026 at 3:39 PM
Thanks @leopold.is for the tutorial on configuring prettier and eslint on @nuxt.com. Helped me set consistent formatting and linting in my project.
September 24, 2026 at 2:31 PM
What is ShaadKit? A Look at My Personal Foundation for Next.js Projects
## Where Does the Problem Start? Imagine you've started a new Next.js project. You're about to build something new and exciting. But before you even write a single line of code for the actual product, you have to get through a mountain of repetitive tasks: * **Setting up ESLint** with the right config and strict rules * **Setting up Stylelint** for CSS and CSS Modules * **Setting up Storybook** for component-driven development * **Adding testing** with Vitest and Playwright * **Setting up i18n** for multilingual support from the start * **Choosing a UI library** and integrating it with Next.js * **Setting up the project structure** in a way that's ready to scale * **Performance tooling** like Bundle Analyzer * **Various Next.js configurations** for optimization * **Project conventions** from naming to file structure And this cycle repeats with **every new project** : create-next-app ↓ configure ↓ fix conventions ↓ add tooling ↓ add testing ↓ add UI infrastructure ↓ finally start building Regardless of the fact that this is a repetitive process for every project, it's honestly extremely exhausting (I get really tired of it!) One of the best solutions is to use ready-made templates or boilerplates. Given that my main focus is on Next.js, the following can be mentioned as examples: * Nextjs-boilerplate * precedent * ts-nextjs-tailwind-starter * next-shadcn-admin-dashboard * free-nextjs-admin-dashboard * ... Given the variety of repos, I could probably come up with 50 more examples! But I had a bigger problem. ## I Don't Want a Template with Too Many Features I love it when a project has many capabilities. For example, Next.js handles server components, optimizes images, creates routing, manages backend APIs, and so on. But this is not a good idea at all for ready-made templates! The reason is obvious. Every technology or feature means making the learning curve steeper. And if a template has too many capabilities, its learning cost increases, while the whole point of using a template is to get started quickly! A developer might even be forced to learn something they've never worked with before or have no interest in using, but they're stuck with it. I was looking for something where the capabilities would be plentiful enough, but I wouldn't be obligated to use them. I just wanted to use what I actually needed right now! I believe everything should be just enough — neither more nor less... That's why I created **ShaadKit**. ## I'm Happy I Built ShaadKit For a long time, I was looking for a project that was neither as simple as `create-next-app` nor like some boilerplates that pack in more than 50 technologies. I wanted to build an MVP very quickly, so I would use technologies that prioritized speed over quality (though quality is also very important to me). Now, with ShaadKit, I can set up a scalable frontend foundation in just a few clicks! ShaadKit uses the following technologies: * ⚡ **Bun** as the Package Manager — ultra-fast installation and execution * 🧩 **Mantine v9** — powerful and accessible components * 🌍 **next-intl** — ready for internationalization from the start * 📖 **Storybook 10** — component-driven development with MCP and A11y * 🧪 **Vitest + Playwright** — fast and reliable tests * 🎨 **Stylelint + ESLint (Antfu Config)** — top-tier code quality * 🔍 **Bundle Analyzer** — bundle analysis and optimization * ⚛️ **React 19 + React Compiler** — the latest React with automatic optimization But you might say this contradicts what I said a few paragraphs ago: "Every technology or feature means making the learning curve steeper. And if a template has too many capabilities..." However, my approach to this project is a bit different. As I explained in the What is the philosophy of this stack? section, I didn't have complex technologies in mind for using ShaadKit, and there's no obligation to use the current technologies. You can even skip Mantine (which is the project's main foundation), but I have good reasons for choosing my technologies. You don't necessarily have to use ShaadKit for large projects. Sometimes you need to create a simple table, or validate an idea very quickly. Mantine was chosen because it was perfectly suited for such an approach. ## It Has a Simple Configuration That Is Just Creative and Powerful Enough This is something I personally find very appealing. I wanted it so that if a developer doesn't like my coding style, they'd still admit that I chose a forward-thinking foundation for the project. This is appealing to all businesses and employers. ShaadKit doesn't have any complex configuration. Everything is simple and minimal, but based on the experience I'd gained, I tried to address some of the blind spots that existed. Extending the configuration is very easy, and even beginner developers can do it! I didn't add any library that I didn't find useful. As a result, ShaadKit's core is lightweight. ## I Care a Lot About Code Quality It's very important to me that the code I write always meets the necessary standards. Naturally, for this I had to use tools like ESLint or Oxlint. I consider Oxlint a very appealing choice, but I chose ESLint because it has more capabilities. I also added Storybook because developing a component in Storybook is faster than in Next.js! This is possible thanks to Vite. When I first got to know Storybook, it honestly became very hard for me to walk away from it. ## I Chose the Best Package Manager (In My Opinion) I've used both npm and pnpm! Aside from being the most stable, npm doesn't have any defensible feature, but pnpm is a milestone for the world of package managers. However, on Windows (which has no shortage of developers), pnpm usually performs much slower than it claims, due to the nature of symlinks. I decided to use Bun as the package manager so I could get both pnpm's speed and npm's stability. If you want to use the same symlink capability, you can enable it in Bun. ## I Don't Use Next-intl Just for Internationalization! Of course, the main reason Next-intl was created is to solve internationalization problems in Next.js, but I look at it from a different angle! The thing is, maybe the site being developed is monolingual, and there are no plans to add more languages in the near future. But there's another problem that Next-intl can solve: "managing static text." You've surely run into the issue where, to change a single word on the site, you have to go into several files across different parts of the project and edit them. With Next-intl, all the words are managed in one place with the utmost simplicity. ## Integrating Next.js and Next-intl with Mantine This is also mentioned in Mantine's own documentation. Mantine internally maintains two components, `Image` and `Anchor` (which is similar to `Link` in Next.js). But the problem is that, under normal circumstances, using these two components means losing the power of Next.js! In ShaadKit's configuration, from the very start, the `Image` component (from Next.js) has been merged with the `Image` component (from Mantine). Also, for internationalization and Next.js optimization, the `Anchor` component has been merged with the `Link` component (exported from Next-intl, which itself extends Next.js). ## Just Try It Once As I said, you can set up ShaadKit very quickly: > Make sure you have Bun installed, and using Node.js version 24 is highly recommended > # Clone the project git clone https://github.com/shaadcode/shaadkit.git cd shaadkit # Install dependencies with Bun bun install # Run the development server bun dev ## Who Should Use ShaadKit? ShaadKit is useful for most projects, but there are always some considerations: * Next.js developers * SaaS projects * MVPs that are likely to grow * Production projects * Multilingual projects * Projects where testing and component development matter ## Contribute, Give Feedback, Support Contributing to ShaadKit is easy. You can report a bug, offer your suggestion, or share your criticism: If ShaadKit managed to solve a problem for you, I'd be very happy if you gave the repo a star (⭐). * GitHub repository * Issues * Pull Requests * Feature requests
dev.to
September 23, 2026 at 1:44 PM
Fix 'originalKeywordKind' DeprecationError in TypeScript The 'originalKeywordKind' DeprecationError fires when @typescript-eslint packages are stuck on v5 while TypeScript moved on. Upgrade to v6.x and restart ESLint to clear it. Topics: TypeScript, ESLint, troubleshooting https…
September 23, 2026 at 12:45 PM
TSL converstion + terrain with displacement + mesh for La Seine water + add typecheck and eslint ✌️
#TSL #shader #threejs #turgot3d
September 22, 2026 at 7:44 PM
Just released:

eslint/mcp v0.3.13
https://github.com/eslin...
September 22, 2026 at 3:38 PM
#後で読む 用メモです→
Vue3 DRF に SonarQube を入れる前編 Docker だけで構築してカバレッジを連携する
Vue3 + DRF に SonarQube を入れる(前編)— Docker だけで構築してカバレッジを連携する - Qiita
この記事の対象と、書いた理由 Vue3 + Django REST Framework の構成でアプリを作る案件によく入るのですが、 静的解析は ESLint / ruff で止まっていて、SonarQube は名前しか知らない状態でした。 先行記事を読むと、次のとこ...
qiita.com
September 22, 2026 at 1:49 PM
AI coding has made CI a bottleneck, so we reworked ours to keep up
https://realtime.jser.info/2026/09/22/ai-coding-has-made-ci-a-bottleneck-so-we-reworked-ours-to-keep-up/

https://linear.app/now/ci-bottleneck-reworked LinearでのCI改善として、tsgoへの移行、ESLintルールを型情報に
September 22, 2026 at 12:13 PM
LinearでのCI改善として、`tsgo`への移行、ESLintルールを型情報に依存しないように変更。
また、サードパーティランナーと`actions/checkout`の調整、pnpmの依存インストール範囲の限定、Vitestのshard分割や`isolate: false`の導入などについて "AI coding has made CI a bottleneck, so we reworked ours to keep up" https://linear.app/now/ci-bottleneck-reworked #CI #testing #article #TypeScript
September 22, 2026 at 12:11 PM