Josh Goldberg
Meme of Elmo raising his arms in front of an animated fire background

If I Wrote a Linter, Part 4: Summary

Jun 10, 20255 minute read

Summarizing the last three posts of ideas for a new linter, along with next steps for its Flint prototype.

Today’s web linters are great. ESLint is robust and has a huge ecosystem of plugins and configs. Newer native speed linters such as Biome, deno lint, and Oxlint are fast and easy to set up with their own burgeoning ecosystems.

I’ve been working on TypeScript linting for almost a decade. I started contributing to TSLint community projects in 2016 and am now a member of the typescript-eslint and ESLint teams. Based on those years of various linters, I’ve collected a large set of design ideas that I want to try.

💡 This post is the fourth and final in a series:


High-Level Points

Those posts have a lot of ideas I’m excited about. You can totally skim this list, it’s huge!

Even if you just read those high-level points and/or don’t work on linters yourself, I hope you’re at least excited about the potential for a linter that embraces all those new strategies. I think trying these ideas out will help take us to a much more pleasant and productive linting experience.

Flint

Speaking of which — I’m going to try these ideas out! I’m finally writing my own TypeScript linter. It’s just a prototype for now, with two intended purposes:

The new linter branding is Flint: A fast, friendly linter ❤️‍🔥.

Flint is extremely early stage at the moment. I’m hoping to get a usable CLI prototype with some of those features some time in summer 2025. I doubt it’ll be have even a majority of the features in 2025. If you’re interested in following along -or even better, helping out-, you can check out the Flint Discord and Flint GitHub repository.

Please feel free to open issues or PRs. Or just reach out to me on Bluesky. I would love to hear your thoughts on this post, linting in general, and the Flint project.

Thanks for reading!


Liked this post? Thanks! Let the world know: