Azat S.

Azat S.

@azat.io

Frontend and open source developer. - ESLint Plugin Perfectionist - ESLint Plugin De Morgan - Eyecons - Actions Up - Todoctor - etc.

223 followers91 following165 posts

Pinned

Released ESLint Plugin Perfectionist v5.0.0. 🎉 It’s a plugin for sorting imports, TS types, JSX props, classes, objects, variables, and more. In this release: move to ESM-only, dropped Node.js v18 support, two new rules. github.com/azat-io/esli... More in the thread below ⬇️

github.comGitHub - azat-io/eslint-plugin-perfectionist: ☂️ ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc.☂️ ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc. - azat-io/eslint-plugin-perfectionist
View full thread

Before updating, 2.0 checks that: - the tag's commit is on the default or a protected branch, not only in a fork - the pinned tag hasn't been moved to another commit --min-age cooldown now trusts only GitHub's timestamps: whoever moves a tag can fake git dates too.

75% fewer dependencies: 8 packages down to 2, the rest replaced with my own modules. Less third-party code in the supply chain. Install size down 14%: 1.04 MB vs 1.21 MB. The interface is unchanged. Release notes: github.com/azat-io/acti...

In March 2025, attackers moved tj-actions/changed-files tags to a commit that dumped secrets into CI logs. The action was in 23,000+ repos. A SHA pin is safe until you update it. Actions Up 1.x would have suggested the tampered commit. 2.0 shows 🚨 and leaves the pin alone.

Azat S. reposted

Nano Stores finally has a website! We've seen huge growth thanks to LLMs. Not having a site was embarrassing. nanostores.net Check out the design: fresh and personal. Too many modern sites look the same. No React. Just Astro.

@filmgirl.bsky.social Hi Christina. I have a trade-controls appeal (ticket #4777616) sitting unanswered for 17 days after relocating to the Philippines. Would you mind if I DM'd you the details? Not asking you to fix it, just hoping someone inside can take a look

Azat S. reposted

The prototype of my Slow Reader is ready. I’m working on the onboarding, so people can quickly get the idea. I added a demo mode so you can explore the UI right away: dev.slowreader.app Any recommendations for neutral and beautiful RSS feeds for the demo?

Azat S. reposted

My new article is out! A systematic guide to releasing npm packages as safely as possible in 2026 (with a Skill to quickly apply the practices to your open source projects). Not just “do X”: I cover real supply chain attacks and explain how each defense helps. evilmartians.com/chronicles/t...

evilmartians.comThe secure way to release an npm package in 2026—Martian Chronicles, Evil Martians’ team blogHow to protect your npm package from being stolen in a supply chain attack and improve its position in security ratings

Azat S. reposted

Another GitHub Action hack where old versions were swapped to infect CI. socket.dev/blog/trivy-u... It’s another example of why you should pin actions in your workflows by commit SHA, not by version tags. For JS projects, use actions-up: github.com/azat-io/acti... For everything else: pinact.

socket.devTrivy Under Attack Again: Widespread GitHub Actions Tag Comp...Attackers compromised Trivy GitHub Actions by force-updating tags to deliver malware, exposing CI/CD secrets across affected pipelines.

Claude Code, Codex, Gemini CLI, OpenCode - all use different config formats. I made a script to sync them quickly. Repo also includes my configs: subagents, skills, commands, MCP servers. github.com/azat-io/ai-c...

Azat S. reposted

Most supply chain attacks are at their most dangerous on the first day. So a good package manager should have an option to show only versions that are at least a day old (pnpm and Bun have this). actions-up (for GitHub Actions CI) has this too: github.com/azat-io/acti...

Released ESLint Plugin Perfectionist v5.0.0. 🎉 It’s a plugin for sorting imports, TS types, JSX props, classes, objects, variables, and more. In this release: move to ESM-only, dropped Node.js v18 support, two new rules. github.com/azat-io/esli... More in the thread below ⬇️

github.comGitHub - azat-io/eslint-plugin-perfectionist: ☂️ ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc.☂️ ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc. - azat-io/eslint-plugin-perfectionist
View full thread

In addition, we added more pattern‑matching options in sort-objects and sort-object-types, improved numeric key sorting, and fixed many small bugs, especially around comment handling. Removed deprecated API. The plugin is smarter and more stable.

Released ESLint Plugin Perfectionist v5.0.0. 🎉 It’s a plugin for sorting imports, TS types, JSX props, classes, objects, variables, and more. In this release: move to ESM-only, dropped Node.js v18 support, two new rules. github.com/azat-io/esli... More in the thread below ⬇️

github.comGitHub - azat-io/eslint-plugin-perfectionist: ☂️ ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc.☂️ ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc. - azat-io/eslint-plugin-perfectionist
View full thread

Expanded useConfigurationIf. You can now apply different settings depending on: - declaration name (declarationMatchesPattern) - comment above the declaration (declarationCommentMatchesPattern) - having only numeric keys (hasNumericKeysOnly)

In groups you can now override type, order, and newlinesBetween directly within the group. This gives more flexibility for complex configurations without duplicating settings. Also added modifiers multiline/singleline for sort-imports and wildcard/named for sort-exports.

Released ESLint Plugin Perfectionist v5.0.0. 🎉 It’s a plugin for sorting imports, TS types, JSX props, classes, objects, variables, and more. In this release: move to ESM-only, dropped Node.js v18 support, two new rules. github.com/azat-io/esli... More in the thread below ⬇️

github.comGitHub - azat-io/eslint-plugin-perfectionist: ☂️ ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc.☂️ ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc. - azat-io/eslint-plugin-perfectionist

Two new rules for sorting import/export attributes, a new JS feature: - sort-import-attributes - sort-export-attributes import { foo } from 'foo' with { type: 'json', unknown: 'unknown' }

Azat S. reposted

An excellent guide to creating a search function on a website using @astro.build and @svelte.dev. Thanks to this guide by Evil Martians, we have implemented a search on the ESLint Perfectionist website. It will be released soon. 🚀

Evil Martians@evilmartians.com

Your snappy statically generated @astro.build site deserves a search that likewise feels instant. Here’s how to get build-time indexing and client-side search that’s fuzzy, performant, and accessible. evilmartians.com/chronicles/h...