Nir Tamir
nirtamir.com
Nir Tamir
@nirtamir.com
Senior frontend developer. 3D/AI explorer. Productivity power user. Open source enthusiast. Concocting new ideas.
https://www.nirtamir.com
I just published an article on React Server Components. While they promised much, real-world use revealed some gaps.
The Limits of RSC: A Practitioner’s Journey
www.nirtamir.com/articles/the...
The Limits of RSC: A Practitioner's Journey
React Server Components promised to revolutionize how we build React applications. I embraced this vision fully, only to discover that real-world implementation exposes fundamental gaps in the model. ...
www.nirtamir.com
May 9, 2025 at 10:19 AM
Just shipped a big upgrade to eslint-plugin-default-import-name! 🚀

✨ Auto-renames usages of default imports (incl. JSX + vars)
⚔️ Handles naming conflicts
🧠 Customizable with importPathRegexToTemplate

Try it — your code will thank you 💅

github.com/nirtamir2/es...
GitHub - nirtamir2/eslint-plugin-default-import-name: ESLint rule: ensure default imports match file names
ESLint rule: ensure default imports match file names - nirtamir2/eslint-plugin-default-import-name
github.com
April 12, 2025 at 12:36 AM
I'm thinking of RSC as a server API that gets props returns JSX, and tells React to render it in a specific node. Good use case for it is rendering Markdown - when the added JS to compute and render the markdown costs more than doing it in the server and just returning the result
March 28, 2025 at 10:50 AM
I'm happy to use Astro for my website. I wish Astro would have Quik's like ability to take <script> tag in Astro components, bundle it separately, add its id to the markup (like QRL), and load it lazily - only when the user hovers over the component (like URL but for bundled JS)
March 28, 2025 at 10:35 AM
Started a new project with @tanstack.com start!
I'm super excited about it - I plan to migrate from Next.js for one of my projects if it will work well. RSC did not work well for me - even the most minor infinite loading breaks its model and it's very limited in client state updates
March 27, 2025 at 11:02 PM
I'm using Webstorm as IDE mainly for the refactoring abilities and shortcuts. AI autocompletions do not work for me effectively yet. I want to be accurate and know what to do most of the time. AI may help me do more specific refactoring that is not available now.
March 14, 2025 at 10:26 AM
I think the best way to learn something new is by building a side project that integrates it 🚀
March 11, 2025 at 11:53 AM
I created a new ESLint rule: `sort-object-properties-by-type` 🎉. It reorders object properties based on their TypeScript type, even inside arrays. Useful for keeping configs and large objects organized. Includes auto-fix 🔧

github.com/nirtamir2/es...

@typescript-eslint.io

@eslint.org
February 11, 2025 at 3:33 PM
I find TDD (Test Driven Development) works well for developing ESLint plugins. It helps me stay focused, catch bugs as I build, and automate checks, making the process more efficient and smoother
February 9, 2025 at 2:28 AM
I think it's time to use effect.website for one of my projects, which includes a lot of try-catch blocks. Curious to see how it fits
January 28, 2025 at 5:00 PM
Good read on productivity systems and how someone executes effectively. I appreciate the idea of accountability partners for staying on track.
ricos.site/posts/my-pro...
My Productivity Systems – How I manage to do so many things, My Habits, Tricks, and Systems
People often ask me how I can do so many different things, and be so *productive*. . . some even tell me that I am very disciplined. But yet, when I think about myself I don't consider myself to be ve...
ricos.site
January 26, 2025 at 8:54 PM
Integrated pkg.pr.new into my ESLint package. It lets me test npm packages in a live environment before publishing—like Vercel for npm. No need to publish multiple versions just to test, and it makes releases much smoother and more reliable
GitHub - stackblitz-labs/pkg.pr.new: 📦️ Continuous (Preview) Releases for your libraries!
📦️ Continuous (Preview) Releases for your libraries! - GitHub - stackblitz-labs/pkg.pr.new: 📦️ Continuous (Preview) Releases for your libraries!
pkg.pr.new
January 25, 2025 at 11:05 AM
I’m in Miami right now! Any devs up for a coffee? Also, what tech meetups or events should I check out while I’m here?
December 15, 2024 at 1:13 AM
During my flight to Barcelona, I listened to the podcast “Anything You Want - 40 Lessons for a New Kind of Entrepreneur.” I highly recommend it; it provided me with a lot of inspiration. I’d love to follow in his footsteps.
November 24, 2024 at 11:29 PM
An excellent video explaining and integrating new CSS features into a web app
www.youtube.com/watch?v=oXSF...
Modern CSS for sites: View transitions, scroll effects, and more!
YouTube video by Chrome for Developers
www.youtube.com
November 14, 2024 at 6:40 PM
After navigating through lengthy bureaucratic procedures on Google Play, my memory game app has been successfully re-published in the Play Store!
play.google.com/store/apps/d...
November 14, 2024 at 12:43 PM
Explored drag-and-drop in SolidStart, comparing solid-dnd and pragmatic-drag-and-drop for SolidHack. Learned:
- Implementation approaches between libraries
- Found + reported a SolidStart bug
- Valuable exploration despite the unfinished project
November 13, 2024 at 11:20 PM
I wrote a small short post exploring the differences between state-based and render-based approaches for implementing optimistic updates in web applications
www.nirtamir.com/articles/opt...
Optimistic Updates: Comparing State-Based and Render-Based Approaches
Explore the differences between state-based and render-based approaches for implementing optimistic updates in web applications.
www.nirtamir.com
November 11, 2024 at 12:00 AM
Just discovered my first issue in Chromium! It’s related to some AI experimental features I’ve been exploring. Feels like navigating uncharted waters
issues.chromium.org/issues/37407...
Chromium
issues.chromium.org
November 9, 2024 at 6:40 PM
I’ve been trying out lumen, a command-line tool that uses AI for commit messages and git diff summaries. Made a custom WIP command that adds a diff-based description to my commit messages.
github.com/jnsahaj/lumen
GitHub - jnsahaj/lumen: Instant AI Git Commit message, Git changes summary from the CLI (no API key required)
Instant AI Git Commit message, Git changes summary from the CLI (no API key required) - jnsahaj/lumen
github.com
November 8, 2024 at 6:36 PM
I built a simple site with two elements and a CSS animation in minutes, and it worked great. We then spent days on a complex feature that barely mattered. This experience was a reminder that product requirements and thoughtful design matter more than technical complexity
November 7, 2024 at 11:28 PM
I tried out github.com/wxt-dev/wxt today to create a new browser extension, and I’m pleased with it. It's Vite-based, making it easy to use almost any frontend UI library, and its structure simplifies entry points. Injecting UI via the shadow DOM in content scripts is also straightforward
GitHub - wxt-dev/wxt: ⚡ Next-gen Web Extension Framework
⚡ Next-gen Web Extension Framework. Contribute to wxt-dev/wxt development by creating an account on GitHub.
github.com
November 7, 2024 at 11:14 PM
I suspect I've encountered an issue with SolidStart - either there's a bug in the framework or it's something I'm not doing correctly. I'm unable to render client-only components within a Suspense boundary that waits for createAsync result.
November 6, 2024 at 11:16 PM
This new ESLint plugin enhances the no-restricted-syntax rule by allowing us to create separate rules for each selector and manage their messages independently.
github.com/bradzacher/e...
GitHub - bradzacher/eslint-plugin-no-restricted-syntax: An eslint plugin for quickly and easily creating no-restricted-syntax rules
An eslint plugin for quickly and easily creating no-restricted-syntax rules - bradzacher/eslint-plugin-no-restricted-syntax
github.com
November 5, 2024 at 10:47 AM
Using the ESLint rule “unused-imports/no-unused-vars” to detect unused variables is more effective than relying on TypeScript’s “noUnusedLocals”, “noUnusedParameters”, and “allowUnusedLabels” flags. It avoids false positives and allows the configuration of ignored variable patterns (_ignored)
November 3, 2024 at 1:49 PM