Sign in

Nick

@nickjvandyke.bsky.social
36 followers 40 following 68 posts

Making great engineering fun. github.com/nickjvandyke

PostsRepliesMedia
Nick @nickjvandyke.bsky.social · 06/08/2026
Stoked to see the r/reactjs community mentioning github.com/nickjvandyke... in every thread about effect foot guns! True traction! Signified as well by hitting 2M monthly downloads 😄 #devtools #webdev #reactjs #devex
github.com
GitHub - nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect: 🙅‍♂️ Catch unnecessary React effects for simpler, faster, safer code.
🙅‍♂️ Catch unnecessary React effects for simpler, faster, safer code. - nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect
010
Nick @nickjvandyke.bsky.social · 29/06/2026
The number of hard-fought, insightful code comments I've lost because AI apparently still struggles to retain them when editing nearby code... 😞
010
Nick @nickjvandyke.bsky.social · 27/06/2026
I got these too. The PRs linked back to some "agent bounty" repo. I presume you found the same? Super annoying (and disappointing) 😞
010
Nick @nickjvandyke.bsky.social · 24/06/2026
Added a Motivation section to github.com/nickjvandyke... tl;dr: AI works best as a pair programmer. Nobody wants to learn yet another bespoke interaction model. And the best tools "just work." Neovim 🤝 OpenCode #devtools #devex
github.com
GitHub - nickjvandyke/opencode.nvim: Integrate Neovim and OpenCode to stay in your familiar flow.
Integrate Neovim and OpenCode to stay in your familiar flow. - nickjvandyke/opencode.nvim
020
Nick @nickjvandyke.bsky.social · 23/06/2026
Call me a dirty #webdev but I finally got a working Promise implementation in #Neovim, namely with correctly inferred generics from LuaLS. Lots of trial and error to type it correctly! github.com/nickjvandyke...
github.com
refactor(promise): infer generics when chaining · nickjvandyke/opencode.nvim@5ac0cb0
nice! didn't think this was possible. some compromises but overall this is safer and easier.
030
Nick @nickjvandyke.bsky.social · 22/06/2026
Yeah, not as exciting as helping another human 😞
000
Nick @nickjvandyke.bsky.social · 22/06/2026
Ah good analogy, now I see what you're saying thanks. I'd like to think that exposing those devs to better APIs will help them grow, but maybe that's too optimistic haha.
110
Nick @nickjvandyke.bsky.social · 22/06/2026
I'm not sure I understand why the median dev would prefer more fields that are each unpredictable? That is more work for them to consume, not less.
100
Nick @nickjvandyke.bsky.social · 22/06/2026
It's a nice idea but unfortunately writing the code itself is necessary to strengthening that intelligence. This is like saying you'll have a robot shoot your free throws for you, while somehow retaining your own ability to shoot them without practice.
000
Nick @nickjvandyke.bsky.social · 22/06/2026
Precise union types have always been the better solution. If anything it was more important pre-AI because a human can't quickly explore the codebase to discern the possible combinations of excessive optional fields. _That_ is information overload; it's a bad abstraction.
100
Nick @nickjvandyke.bsky.social · 19/06/2026
Personal projects are fun because I can improve code quality just because it feels good #dev #opensource
030
Nick @nickjvandyke.bsky.social · 18/06/2026
@traversable.bsky.social Thank you for the GitHub sponsor! It popped up just as I was craving ramen last night, and convinced me to go 😄
010
Nick @nickjvandyke.bsky.social · 09/06/2026
Just realized another beauty of #opensource: I don't have to feel bad about saying no because (aside from this being essentially volunteer work) users can always fork and DIY. If they don't care enough to do that, they probably won't miss it anyway.
030
Nick @nickjvandyke.bsky.social · 08/06/2026
Calling some human that cares to get into #Neovim #opensource and uses opencode.nvim... github.com/nickjvandyke... is super simple but has only had two drive-by AI PRs so far 😞
github.com
bug: `session.interrupt` command requires two sends · Issue #257 · nickjvandyke/opencode.nvim
Describe the bug When we send the session.interrupt command, the opencode TUI displays "press Esc again to interrupt". I think this regressed with opencode v1.0 because it used to work immediately....
030
Nick @nickjvandyke.bsky.social · 08/06/2026
I'm excited to announce v1.0.0 of my ESLint plugin to catch unnecessary React effects! Check out the r/reactjs post for details: www.reddit.com/r/reactjs/co... #reactjs #devtools #webdev
reddit.com
From the reactjs community on Reddit: ESLint plugin to catch unnecessary effects v1.0.0: new rule, clearer messages, better signal-to-noise, more stable internals, and oxlint support
Explore this post and more from the reactjs community
030
Nick @nickjvandyke.bsky.social · 05/06/2026
Thanks for clarifying! Tab does indeed work for me in both native and snacks.input. However I wanted consistency with the user's completion plugin, and struggled to wire it up as a source. I experimented a lot but could have missed a specific configuration combo.
000
Nick @nickjvandyke.bsky.social · 05/06/2026
I do use that for the native vim.ui.input, but iirc I couldn't get its behavior consistent with completion plugins. Specifically it didn't have a trigger character or documentation equivalent. I could have missed something though. And maybe 0.12 improved that.
100
Nick @nickjvandyke.bsky.social · 04/06/2026
I use an in-process LSP to provide better completions for snacks.input, so I suspected mini.input also needs a bit of config to attach the LSP 🙂 Highlights is the other thing but from the docs, it seems the native vim.ui.input highlight option will just work!
100
Nick @nickjvandyke.bsky.social · 04/06/2026
Gratz! Looking forward to supporting this in opencode.nvim. The docs look promising 😀
110
Nick @nickjvandyke.bsky.social · 02/06/2026
The signal:noise ratio should also be even better now, making it less overwhelming to integrate into massive codebases like Sentry's
000
Nick @nickjvandyke.bsky.social · 02/06/2026
@tkdodo.eu I just added the final rule to github.com/nickjvandyke... - it's (probably) the correct anti-pattern interpretation for your reported "no-derived-state" false positives on effects w/ cleanup. Give it a try and lmk how it goes if you get the time! #reactjs #devtools
No-external-store-subscription rule and example
160
Nick @nickjvandyke.bsky.social · 30/05/2026
Approaching v1.0 of github.com/nickjvandyke...! I just finished adding the final missing rule (no-external-store-subscription) and tweaking the messages to provide clearer, more actionable feedback. #opensource #devtools #reactjs
github.com
GitHub - nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect: Catch unnecessary React effects for simpler, faster, safer code.
Catch unnecessary React effects for simpler, faster, safer code. - nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect
060
Nick @nickjvandyke.bsky.social · 30/05/2026
Being a force multiplier for other devs is so much fun, but yeah this is the stress that comes with it 😅
010
Nick @nickjvandyke.bsky.social · 25/05/2026
That feel when all errors are propagated to the user and nothing fails silently 🤩 #dev
000
Nick @nickjvandyke.bsky.social · 17/05/2026
I recently turned off inline autocompletion and noticed myself suddenly internalizing obscure APIs that I always struggled to remember!
020
Nick @nickjvandyke.bsky.social · 16/05/2026
> coding feels strangely more boring > change color scheme "ahh, that's better"
000
Nick @nickjvandyke.bsky.social · 15/05/2026
Someone opened a couple PRs for opencode.nvim's "good first issues", but ignored the PR template. To me, this signals drive-by AI, which defeats the purpose of good first issues: give newbies an approachable entry to contributing to #opensource. As usual, #AI over-usage is missing the big picture :/
030
Nick @nickjvandyke.bsky.social · 09/05/2026
I've heard good things about how "good first issue"s can help grow a community! To test that out, I just added a couple to opencode.nvim for any #Neovim #opensource enthusiasts. Come take a crack at it! github.com/nickjvandyke...
github.com
Issues · nickjvandyke/opencode.nvim
Integrate Neovim and OpenCode AI to stay in your flow. - Issues · nickjvandyke/opencode.nvim
050
Nick @nickjvandyke.bsky.social · 01/05/2026
This worked perfectly, even for my complex plugin: github.com/nickjvandyke... I'm grateful and impressed! I'm sure this wasn't easy. But it saved me so much time! Re-using recommended configs might be nice, if it fits your vision? 🙂
github.com
GitHub - nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect: Catch unnecessary React effects for simpler, faster, safer code.
Catch unnecessary React effects for simpler, faster, safer code. - nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect
000
Nick @nickjvandyke.bsky.social · 24/04/2026
Getting the unpaid #opensource urge to remove features that I don't feel like supporting again 😅
020
Nick @nickjvandyke.bsky.social · 24/04/2026
I'm sure it's good for the most common needs, but AI really struggled to help me write complex lint rules with numerous AST edge cases. Hallucinations galore 😔 Not enough training data I guess. (But then I can have fun hand-coding it without feeling inefficient 😄)
020
Nick @nickjvandyke.bsky.social · 24/04/2026
There's a lint rule that requires an explanation next to every inline-disable! Increases friction and opens a discussion with the developer that let it slide.
030
Nick @nickjvandyke.bsky.social · 23/04/2026
Woot, happy coding! 😄
110
Nick @nickjvandyke.bsky.social · 23/04/2026
blog.jetbrains.com/webstorm/202... ? WebStorm is the closest I found but afaik they share a foundation
blog.jetbrains.com
WebStorm 2025.2: TypeScript-Go Language Server Support, Baseline Support, Bun Improvements, and More | The WebStorm Blog
WebStorm 2025.2, the second major update of the year, is out! Try the latest release today.
110
Nick @nickjvandyke.bsky.social · 22/04/2026
Depends on your editor - presuming VSCode, you'd use the new extension: marketplace.visualstudio.com/items?itemNa... iirc for Neovim, I just had to install tsgo globally and add `vim.lsp.enable('tsgo')` to my config 😄
120
Nick @nickjvandyke.bsky.social · 22/04/2026
Did you switch to the tsgo LSP too? Find references etc used to take 10 seconds for us, now just 1-2. Less flow state interruptions 😄 Nice for agent harnesses that leverage LSPs for fast feedback too.
140
Nick @nickjvandyke.bsky.social · 20/04/2026
If you mean the sudden dip, that must have been an NPM thing. My ESLint plugin dropped from 300k to 100k weekly downloads out of nowhere, then just as suddenly rose back up.
000
Nick @nickjvandyke.bsky.social · 15/04/2026
Speaking of, have y'all had the chance to enable more rules in github.com/nickjvandyke... ? It's quite stable these days - no new issues reported for weeks! Thanks in part to your early reports 🙏
github.com
GitHub - nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect: Catch unnecessary React effects for simpler, faster, safer code.
Catch unnecessary React effects for simpler, faster, safer code. - nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect
040
Nick @nickjvandyke.bsky.social · 15/04/2026
gl on your journey man!
110
Nick @nickjvandyke.bsky.social · 12/04/2026
This but unironically
110
Nick @nickjvandyke.bsky.social · 08/04/2026
Gonna fanboy @voidzero.dev once more today... github.com/nickjvandyke... "just worked" in Oxlint! Really impressed (and grateful). I know backwards compatibility (if you want to call it that here) can be really complex.
github.com
docs: add oxlint setup · nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect@732e71e
https://github.com/nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect/issues/32 https://github.com/oxc-project/oxc/issues/14121 curious if its possible to reference our recommended esli...
030
Nick @nickjvandyke.bsky.social · 08/04/2026
Shoutout @voidzero.dev for tsdown! Really simplified my build process github.com/nickjvandyke... Publish and type resolution validation is especially cool. That was such a pain to verify manually!
github.com
refactor(build): use tsdown, add publish validation · nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect@cc2101a
simplifies lots of stuff. thanks VoidZero! - bundle ESM files, rather than distribute their source - index.js -> index.ts to easily generate ESM and CJS types from it - remove deprecated main, m...
071
Nick @nickjvandyke.bsky.social · 05/04/2026
I feel compelled to make a #neovim analytics plugin to know how people actually use opencode.nvim and thus where I should focus. But analytics is peak anti-Neovim. I wonder if there's a middle ground 🤔
000
Nick @nickjvandyke.bsky.social · 03/04/2026
I think we've all seen the influx of #ai slop PRs in #opensource 😔 but I've also noticed an overwhelming number of duplicate projects. Everyone vibe codes their own tool (and spams it on Reddit) rather than contribute to a better one that already exists... Ape together strong!
010
Nick @nickjvandyke.bsky.social · 03/04/2026
Making the change: ez Brainstorming adjacent needs to make the change in a way that minimizes the likelihood of later breaking changes for hundreds of thousands of users: brain hurty #opensource #dev
010
Nick @nickjvandyke.bsky.social · 03/03/2026
Shout-out to the contributors that see an issue and open a focused PR to fix it 💙 really goes to show the power of #opensource
010
Nick @nickjvandyke.bsky.social · 03/03/2026
Use how often they switch to/from your tab as a proxy, and move the ad if it's high 😂 (But kudos for considering this unique form of accessibility!)
000
Nick @nickjvandyke.bsky.social · 03/03/2026
github.com/subframe7536... You'd also like monolisa.dev, but it's paid
010
Nick @nickjvandyke.bsky.social · 21/02/2026
somebody tell me it's okay to remove features from #opensource #dev projects because you can't keep up with the maintenance burden and they add little core value #unbuildinpublic
010
Nick @nickjvandyke.bsky.social · 19/02/2026
It even works for non-symbols, e.g. deciphering magic numbers!!
000