Cam McHenry
@camchenry.com
馃摛 494
馃摜 291
馃摑 117
dad | software engineer
@github.com
| core team member of oxc.rs | 鉁濓笍 camchenry.com
Finally had time to put more effort into implementing oxlint<->tsgolint configuration for rules. Very soon, you'll be able to configure type-aware rules like any other rules. Should be as easy as just upgrading to the latest versions once it is available.
loading . . .
3 days ago
1
31
1
reposted by
Cam McHenry
Connor Shea
8 days ago
So I started working on it in the evenings when I had time, and last week while I was off work for a week (recovering from eye surgery), in between naps I worked through most of the rule updates. So now almost all of them have documentation for their config options :)
github.com/oxc-project/...
loading . . .
linter: various rules are missing `options` documentation on the Rules pages of the website 路 Issue #14743 路 oxc-project/oxc
I think this was covered slightly by #6050, but may have been missed as being within scope of the problem. no-unused-vars, for example, has various options available. But the page for the rule make...
https://github.com/oxc-project/oxc/issues/14743
1
5
1
reposted by
Cam McHenry
Connor Shea
8 days ago
I had been exploring ESLint alternatives and was bothered by the lack of consistent documentation for rule configs in oxlint. So I opened an issue about it and talked with the maintainers about the right way to solve it, and found out there was a system for auto-generating documentation with types.
loading . . .
linter: various rules are missing `options` documentation on the Rules pages of the website 路 Issue #14743 路 oxc-project/oxc
I think this was covered slightly by #6050, but may have been missed as being within scope of the problem. no-unused-vars, for example, has various options available. But the page for the rule make...
https://github.com/oxc-project/oxc/issues/14743
2
6
1
reposted by
Cam McHenry
Chris Coyier
10 days ago
I love that this actually works. *Oh yeah, is your list actually UNordered? Prove it.*
add a skeleton here at some point
2
32
5
use no memo hear no memo speak no memo
11 days ago
0
5
0
reposted by
Cam McHenry
Josh Goldberg
11 days ago
I am looking for a full-time job. Being independent in open source for 3.5+ years has been wonderful. I've gotten done most of the high-level goals I wanted to, and miss having people & structure around me. If you know of a role for a staff-level TypeScript+web developer, let me know! 馃檪
9
210
91
Vite and Vitest imply the existence of Viter
12 days ago
2
18
1
Does anyone have experience with tools for benchmarking on every PR for Go projects? I'm looking to get a rough estimate of perf regressions/improvements in each PR for
github.com/oxc-project/...
. Looking into building something custom with `go tool pprof` currently.
loading . . .
GitHub - oxc-project/tsgolint: Type aware linting for oxlint
Type aware linting for oxlint. Contribute to oxc-project/tsgolint development by creating an account on GitHub.
https://github.com/oxc-project/tsgolint
14 days ago
1
3
0
On my laptop, oxlint 1.24 is 3% faster than 1.23 on the `vscode` repository, with even larger improvements for very large codebases. That means if you haven't updated to one of the latest versions in a few weeks, your linting step could be >10% slower than it should be!
add a skeleton here at some point
19 days ago
1
4
1
Making something 1% faster 20 times > making something 20% faster once But that doesn't stop me from trying to get that juicy big one 馃槄
23 days ago
0
7
0
reposted by
Cam McHenry
23 days ago
Big up to new
#oxc
contributor
@arsh.sh
, who showed up out of nowhere and is tearing through our issue list! He's just implemented support for all the comment-based APIs in Oxlint JS plugins.
github.com/oxc-project/...
loading . . .
feat(linter/plugins): comment-related APIs by lilnasy 路 Pull Request #14715 路 oxc-project/oxc
Part of #14564. Implement the remaining SourceCode APIs related to comments (getCommentsBefore, getCommentsAfter, getCommentsInside, commentsExistBetween).
https://github.com/oxc-project/oxc/pull/14715
0
31
4
Oxlint 1.23.0 just got released, which includes the latest in some of the performance optimization work I've been doing. Running on the vscode repository on my M1 laptop, 1.23.0 is ~7-9% faster than previous versions of oxlint with no changes other than just bumping the dependency.
28 days ago
2
39
3
Just finished writing up an auto-fix for this in Oxlint, in case this was a blocker for anyone:
github.com/oxc-project/...
add a skeleton here at some point
about 2 months ago
0
11
0
I'm finally starting to pick up Go and try to formally learn it. It's got a lot of wild features! First language I've used in quite a while that natively supports complex numbers, seems like an interesting choice. The swapped type declaration order is gonna take a while to get used to.
about 2 months ago
1
1
0
First of these optimizations rolled out in v1.15.0 with a reduced scope. Next version of oxlint will be even faster:
github.com/oxc-project/...
On my laptop: ~15% faster on `oven-sh/bun`, ~9% faster on `microsoft/vscode`, ~11% faster on `posthog/posthog`, and ~8% faster on `elastic/kibana`
add a skeleton here at some point
2 months ago
0
27
2
reposted by
Cam McHenry
VoidZero
2 months ago
VoidZero x SquiggleConf: Win a ticket! VoidZero is a proud sponsor of this year's
@squiggleconf.com
on September 18th and 19th in Boston. We've got an extra ticket for the event and want to give it away to one of you so you can join us there! Learn in this thread how you can enter the raffle 馃憞
2
24
6
Trying some new oxlint optimizations. This PR has gone over several iterations in the last few months and the core idea is simple: don't run rules for files if they don't apply (using an AST node bitset lookup). The result: linting is around 15% faster in practice.
3 months ago
5
39
4
reposted by
Cam McHenry
Boshen
3 months ago
Announcing Oxlint Type-Aware Preview
oxc.rs/blog/2025-08...
loading . . .
The JavaScript Oxidation Compiler
A collection of high-performance JavaScript tools written in Rust
https://oxc.rs/blog/2025-08-17-oxlint-type-aware.html
2
144
25
Cool to see more tsgo-based linters! I think best practices here are not known yet, so it is great to see more teams innovating on this.
add a skeleton here at some point
3 months ago
0
7
0
Great news for anyone linting large repositories! Hopefully this will be an easy performance win for teams using ESLint.
add a skeleton here at some point
3 months ago
0
5
0
Just had a listen to this, it's well worth listening to catch up on the current state of JS linting, as Josh has lots of experience from working on ts-eslint. Lots of innovation happening in linting currently Overall, I think right now is a great time to learn more about linting, parsing, and ASTs.
add a skeleton here at some point
3 months ago
1
9
1
First version is out! It's still pretty experimental, but we will keep improving performance and fixing bugs with each version. Most importantly though: you can use it now!
add a skeleton here at some point
3 months ago
0
9
1
reposted by
Cam McHenry
Boshen
3 months ago
`oxlint --type-aware`. Mic drop. It's incomplete and have numerous problems, including a noticeable performance issue. BUT, you can finally see your floating promises quickly! Example PR:
github.com/rolldown/rol...
Problems:
t.co/K7ZVnPjOPL
3
111
18
It's been great to work on prototyping this! I'm really excited by typescript-go and looking forward to getting this released as soon as we can. The future is fast 鈿★笍
add a skeleton here at some point
4 months ago
0
46
4
reposted by
Cam McHenry
Boshen
4 months ago
I am permitted to host tsgolint in Oxc and explore type aware linting! I am super excited! We reduced the original scope of tsgolint to be a backend for oxlint, taking the best out of both worlds!
github.com/oxc-project/...
loading . . .
GitHub - oxc-project/tsgolint: Type aware linting for oxlint
Type aware linting for oxlint. Contribute to oxc-project/tsgolint development by creating an account on GitHub.
https://github.com/oxc-project/tsgolint
1
102
11
reposted by
Cam McHenry
Arnaud Barr茅
4 months ago
Introducing tsl, an extension of tsc for type-aware linting! Want to speed up your ESLint time without losing the great type-aware rules from
@typescript-eslint.io
? Run `bunx tsl --migrate` to try it out!
github.com/ArnaudBarre/...
loading . . .
GitHub - ArnaudBarre/tsl: An extension of tsc for type-aware linting
An extension of tsc for type-aware linting. Contribute to ArnaudBarre/tsl development by creating an account on GitHub.
https://github.com/ArnaudBarre/tsl
10
81
21
This is the best explanation of ARIA that I've seen. There is so much practical advice in here as well!
add a skeleton here at some point
5 months ago
0
2
0
reposted by
Cam McHenry
VoidZero
5 months ago
We're thrilled to announce the first stable release of Oxlint - version 1.0! Our Rust-powered JavaScript/TypeScript linter delivers 50~100x faster performance than ESLint with 500+ rules and zero configuration required. Time to give it a try!
voidzero.dev/posts/announ...
loading . . .
Announcing Oxlint 1.0
The first stable version of Oxlint, a fast & easy-to-use Rust-powered linter for JavaScript and TypeScript, is out. Learn about its 50~100x speed advantage over ESLint, support for 500+ rules, real-wo...
https://voidzero.dev/posts/announcing-oxlint-1-stable
10
309
71
reposted by
Cam McHenry
VoidZero
5 months ago
Today we are excited to announce Rolldown-Vite: a technical preview of the version of
@vite.dev
entirely powered by the Rust stack we built over the past year (Oxc +
@rolldown.rs
)
voidzero.dev/posts/announ...
loading . . .
Announcing Rolldown-Vite
We are building the next generation of JavaScript tooling
https://voidzero.dev/posts/announcing-rolldown-vite
3
322
84
reposted by
Cam McHenry
Boshen
5 months ago
For the Oxlint 1.0 announcement, I'd like to show more real world performance numbers on large repos. If Oxlint has been satisfactory, would you be keen to send me the numbers Oxlint reports at the end? If you have never tried Oxlint but has a large repo: `npx oxlint@latest`.
9
53
8
I got involved with oxc because I just showed up, looked at the issues available and suggested solutions, and started making contributions. It was also nice to not have the pressure of being publicly assigned to it so I could take my time and learn as I went.
add a skeleton here at some point
6 months ago
1
28
3
reposted by
Cam McHenry
patak
6 months ago
If you find an OSS issue that calls your attention, go for it. You don't need to ask permission to start working or have it assigned to you. If someone else sends a PR before you, that's great. You can use your knowledge of the issue to help review the PR, add tests, and validate the approach.
3
103
20
reposted by
Cam McHenry
Alexander Lichter
6 months ago
Happy to see Mercedes Benz adopting modern tooling such as
@rolldown.rs
and Oxc in their workflow, as well as going the extra mile and sharing their results! Up to 64% CI pipeline time reduction is impressive 馃憖 And more per improvements are yet to come 馃く
www.mercedes-benz.io/blog/2025-05...
3
62
9
reposted by
Cam McHenry
Pooya Parsa
6 months ago
危 Experimental bundle analyzer in the last version of
obuild.unjs.io
@rolldown.rs
is fast enough that we can build a package, generate types, then bundle it again, minify it with OXC, and then bundle again!! (for side-effect check) and still takes <50ms for a small lib!
1
29
2
reposted by
Cam McHenry
Herrington Darkholme
6 months ago
A proof of concept to run ast-grep via OXC parser
1
9
1
reposted by
Cam McHenry
Boshen
7 months ago
On Oxlint JS plugins: we've created a survey to gather requirements and would love to hear your thoughts. The linked discussion includes background information and potential approaches we could take.
github.com/oxc-project/...
loading . . .
Oxlint Plugins Written In JavaScript 路 oxc-project oxc 路 Discussion #10342
Oxlint is a pure Rust based JavaScript linter, and the community has been requesting linter plugins written in JavaScript from the very beginning. Now, we're confident that we have solid foundation...
https://github.com/oxc-project/oxc/discussions/10342
3
55
13
reposted by
Cam McHenry
Boshen
7 months ago
I'm starting "This week in Oxc" to improve roadmap visibility. Feel free to subscribe to this thread.
github.com/oxc-project/...
loading . . .
This week in Oxc 路 Issue #10329 路 oxc-project/oxc
This thread serves as our weekly update channel for sharing project developments with the community. Click the subscribe button on the right for updates. For inquiries, please find me on Discord, x...
https://github.com/oxc-project/oxc/issues/10329
0
85
9
In the latest version of the `oxc` VS Code extension (0.16.5), lint fixes now use the provided fix message whenever possible, making it much more clear what the fix will do. Previously, this just appeared as "Fix XYZ problem".
7 months ago
1
35
3
There have been a number of bug fixes and improvements to the editor experience for oxlint recently. If you have run into any bugs or issues with the `oxc` extension in VS Code, we would be interested to hear about it:
github.com/oxc-project/...
8 months ago
0
6
1
reposted by
Cam McHenry
VoidZero
8 months ago
Want to follow all updates + people involved in and around
@voidzero.dev
projects here on Bluesky? Then make sure to check out our starter pack!
go.bsky.app/Sbpuppb
add a skeleton here at some point
2
67
13
Oxlint has now reached a beta version! It's faster than ever, has over 500 rules built-in and we are working on adding lots more features. We are also working towards supporting custom plugins as well 馃檹
add a skeleton here at some point
8 months ago
0
10
1
reposted by
Cam McHenry
Boshen
8 months ago
500 Oxlint rules. What a remarkable achievement by everyone who has contributed to OXC. It was only 11 rules when I completed the prototype back in June 2022.
4
85
10
reposted by
Cam McHenry
Boshen
9 months ago
Oxc v0.53.0 now returns an estree for direct consumption in JavaScript through napi and wasm APIs, no more ugly work arounds.
github.com/oxc-project/...
loading . . .
release(crates): v0.53.0 by oxc-bot 路 Pull Request #9381 路 oxc-project/oxc
[0.53.0] - 2025-02-26 Rust Edition 2024聽#9289 For napi and wasm APIs, the returned AST to the JavaScript side is now 100% estree (bug otherwise). All AST node spans are now corrected to utf16 for...
https://github.com/oxc-project/oxc/pull/9381
3
50
7
2025 resolution: don't buy any new domain names (challenge level: impossible)
11 months ago
0
5
0
Optimist: The cup is half full Pessimist: The cup is half empty Programmer: The cup should never have anything in it, TODO: figure out why this happens sometimes
add a skeleton here at some point
12 months ago
0
3
0
reposted by
Cam McHenry
Angie Jones
12 months ago
My latest blog post covers how a simple observation at airport security highlights the concept of Betterment and how it applies to engineering teams. Which group are you in?
angiejones.tech/the-betterme...
loading . . .
The Betterment Metric - Angie Jones
A simple observation at airport security highlights the concept of Betterment and how it applies to engineering teams. Which group are you in?
https://angiejones.tech/the-betterment-metric/
51
289
139
in an upcoming oxlint release, overrides will now be resolved relative to the config file location:
github.com/oxc-project/...
so this now works correctly: ``` { "rules": { "no-debugger": "off" }, "overrides": [{ "files": ["src/*"], "rules": { "no-debugger": "error" } }], } ```
loading . . .
fix(linter): make `overrides` globs relative to config path by camchenry 路 Pull Request #7407 路 oxc-project/oxc
fixes linter: overrides path without ** prefix does not seem to work聽#7365 currently, we are matching globs on the absolute path to the file, which means that in order to properly match, all globs...
https://github.com/oxc-project/oxc/pull/7407
12 months ago
0
3
0
reposted by
Cam McHenry
Ryan Townsend
12 months ago
馃挴 Principles we should all be living by.
@ericwbailey.website
at
#perfnow
6
151
31
Guys literally want only one thing and it's widely accessible and affordable public transit involving trains and buses
12 months ago
0
2
0
Society if engineers were banned from playing Factorio:
12 months ago
1
5
0
Load more
feeds!
log in