Most active commenters
  • jsunderland323(20)
  • hmokiguess(3)
  • ontouchstart(3)

51 points jsunderland323 | 46 comments | | HN request time: 1.458s | source | bottom

Hi HN, We’re Jamie & Dan, building JSX Tool (https://jsxtool.com) a new inspector/dev panel IDE that allows you to navigate to any line of your React project’s JSX with just a click and a command click to explore your render stack.

Demo video: https://www.youtube.com/watch?v=JIIXvN7vhrs

I’ve been writing React code for nearly a decade. Since I first saw source maps in the days of Babel and Redux, I’ve always wanted to be able to edit my code from the source maps. I’ve also always wanted to be able to inspect my JSX like it was HTML.

Last year, I found my first real use of AI was taking ad-hoc CSS changes in the Chrome element inspector, pasting them into ChatGPT, and asking for the equivalent in Tailwind. I’d then paste those changes into my React TSX files.

I wanted to streamline this process but came to the conclusion that to do so I needed to build a JSX inspector. I had to write a custom AST parser to create a mapping between the JSX and HTML. So I hacked on an inspector for a couple of months that connected JSX to the DOM in both directions.

The next feature was adding a CSS editor, like the one in the browser inspectors but for JSX. Unlike styling a piece of HTML I decided that any in memory style edits to a React fiber should be globally applied, as if you had tweaked that line of code in your codebase.

Finally, I was able to add the two AI features I really wanted: (1) prompt for in-memory styles for when I was pixel tweaking, and (2) save those temporary changes back to my codebase in the convention of the codebase I was working in.

To accomplish talking to the filesystem from the Chrome extension I built a little local server that mounts from the root of your project and allows the extension to send file-system commands back to your project root. We named this the “Dev Server”. (Note: You can fully use us as a JSX inspector without this server installed.)

After all that, I found that to convert myself as a user I needed it to be a pretty fully functional IDE. I needed vim bindings, I needed a typechecker, I needed auto-complete, I needed a linter, I needed code search and I needed a proper file explorer. Fortunately we were able to take advantage of the dev-server architecture we had stumbled onto in order to add an LSP server and Rip Grep. At this point, after months of dog fooding, I use JSX Tool for almost all of my website edits.

We’re still rough around the edges for mobile but we’re working on that.

All of the IDE stuff not involving AI is free and works fine without AI. We let you get a taste of the prompting stuff for free but apply some rate limits.

The extension itself is not open source but the dev server with the LSP is. It’s a great foundation if you want to build any sort of in-browser IDE and it's nearly React agnostic. Building the dev server was a big undertaking so I’d love to see someone fork it and find value in it.

In the future we want to start adding things that we are in a position to take advantage of over something like Cursor, such as letting AI give you code suggestions for runtime exceptions or work with the network logs. We think that the convenience of having your IDE in the dev panel gives us a leg up in convenience and workflow context.

Anyway, regardless of how you feel about AI coding, I wanted to make something that was useful with or without AI. We’d love it if you gave it a spin and we want to share anything we can about the technical side of the product that you might find interesting.

1. imvetri ◴[] No.45903288[source]
How are you planning to acquire customers?

Is this sponsored by yc?

Who are the target audience?

Are the target audience companies or businesses or individuals?

Congratulations

replies(1): >>45903393 #
2. jsunderland323 ◴[] No.45903393[source]
> How are you planning to acquire customers?

We haven't gotten much further than just launching and praying.

> Is this sponsored by yc?

I mean we're a YC portfolio company, so sort of I guess. I used to work at YC, so I suppose YC has been sponsoring me for a while now.

> Who are the target audience?

React developers

> Are the target audience companies or businesses or individuals?

Both, I hope. We definitely went more along the lines of supporting individual developers spiritually but there is no reason it shouldn't work if you have colleagues.

> Congratulations

<3 Thanks so much!

3. cadamsdotcom ◴[] No.45903432[source]
Sorry, just trying to understand.

Are you saying you invented hot reload? And a dev tools css editor?

I am confused, because the ability to edit code and have the page update instantly exists with Vite, and next.js, and a bunch of other frameworks. It’s janky at times but good enough for most - and your edits are in your repo ready to commit. And browser CSS inspectors are really great. And there’s the React DevTools if you need to see props & component hierarchy.

Can you explain the value add over all these free things we already have?

replies(1): >>45903583 #
4. jsunderland323 ◴[] No.45903583[source]
> Are you saying you invented hot reload?

I'm not saying that, no. We are super dependent upon HMR servers from Vite/Next.

We made the ability to write back from your dev panel to your filesystem and made a JSX inspector. As far as I know these are not things supported by either Next or Vite.

> And browser CSS inspectors are really great

I couldn't agree more. I agree so much that we wanted to make one so that you could do the same to JSX as you can do to HTML.

> Can you explain the value add over all these free things we already have?

You should watch the demo video!

5. tnolet ◴[] No.45903755[source]
Interesting that this is now a venture-scale company, according to YC.
replies(2): >>45904613 #>>45905553 #
6. hmokiguess ◴[] No.45903983[source]
Pretty cool project! I love to see progress on the UX of how we write and manage code.

My honest feedback to you here is, this isn’t very valuable by itself as a local dev tool. Make it so it can be run targeting a git repository with live preview and deployment to a real environment and you may have something much better!

Take a look at Theia IDE, maybe you could find a bridge to do that?

Good luck on the launch!

replies(2): >>45904042 #>>45905013 #
7. jsunderland323 ◴[] No.45904042[source]
Gotta respectfully disagree here but yeah, I definitely understand the remote workflow use case and why some folks want that.

I think if you're building something that is targeting designers that is the way to go.

Thanks for checking it out though!

8. ARussell ◴[] No.45904455[source]
I'm a bit confused by the marketing verbiage and tool name. Is this going to target React only, or will it (eventually) support other solutions which use JSX, such as SolidJS?
replies(1): >>45904518 #
9. jsunderland323 ◴[] No.45904518[source]
It's a bit of an aspirational name. For now it's just React, but we hope to get to support other frameworks that use JSX when we have more bandwidth!
10. brazukadev ◴[] No.45904613[source]
Right? There are at least 3 years that I don't get impressed by any Launch HN.
11. hungryhobbit ◴[] No.45905013[source]
You seriously don't think anyone develops locally in 2025?
replies(1): >>45905467 #
12. hungryhobbit ◴[] No.45905042[source]
Surprised by all the hostility in the comments: if this tool actually works as described in the video, you've created a whole new generation of dev tool with JSX Tool!
replies(1): >>45905126 #
13. jsunderland323 ◴[] No.45905126[source]
Me too. I know HN doesn't love YC companies but I was a little shocked.

I swear it isn't vaporware but there's only one way to find out.

There are definitely rough edges, we are after all a 2 man band but I don't ship things that don't work and it's admittedly not done great with older versions of React. You should try it though!

14. whatamidoingyo ◴[] No.45905306[source]
Although I gave up on it, I had a similar idea. I built "VimTools", which allowed you to navigate between different sources on a webpage (via dev tools) and edit them, vim-style. I didn't get beyond the navigation part, though.

If you can implement some Vim-style navigation and key-bindings into this, that would be awesome!

replies(1): >>45905349 #
15. chrisweekly ◴[] No.45905348[source]
Excited to try this! I think you're really onto something w your insight about advantages of IDE in devtools context. I've been doing React about a decade too (and webdev since 1998), and this really resonates.
replies(1): >>45905385 #
16. jsunderland323 ◴[] No.45905349[source]
It does! I'm an avid vim user so I made sure it had ctrl-p, ctrl-w (for window switching), (slash space for search), a nerd tree equivalent file tree explorer. I build all features to be vim compliant first. Just toggle enable vim mode in the settings.
replies(1): >>45905425 #
17. jsunderland323 ◴[] No.45905385[source]
Aw thanks so much. I knew there had to be some folks whom this would resonate with.

I'm excited for you to try it out too! Please let me know how it goes

18. whatamidoingyo ◴[] No.45905425{3}[source]
Oooh! Great!

I haven't really been developing with React recently, but will definitely check this out!

19. apsurd ◴[] No.45905461[source]
Came here to say something critical because modern front-end dev is a self-inflicted hellscape.

I watched the video and "deving from the UI" makes sense! Instantly get the value. Pretty cool!

It's another hurdle as to whether I'm really going to pay the switching cost of changing my dev flow, but it is a very intuitive and compelling proposition. well done.

replies(1): >>45905601 #
20. hmokiguess ◴[] No.45905467{3}[source]
Hey, sorry, I tried to write my feedback with a little more empathy but I guess I should have been upfront to clarify my point.

What I meant to say is, I can't see this competing with the current state of the art as it comes to local development. As for remote development, we are quite lacking there IMO, and this seems to be a great potential candidate to solve that problem.

I do a large portion of my development locally, it's great, I love it. This product is trying to get me to change my workflow there and asking me to do it from the browser only. Why would I work on a browser only if I have a full suite of tools locally, terminals, IDEs, text-editors, rich LSP / plugins / Agents / etc.

replies(1): >>45905673 #
21. ◴[] No.45905546[source]
22. apsurd ◴[] No.45905553[source]
just keep in mind you weren't in the pitch room. I'm old enough now to realize that not everything we see in public is the full story.

It may be all a pipe dream and not pan out, but I bet they pitched a path to more broader optionality. That's all you really need, momentum and optionality.

23. swyx ◴[] No.45905565[source]
is the ultimate plan to become like a "Cursor for React"?
replies(1): >>45905644 #
24. jsunderland323 ◴[] No.45905601[source]
I walk into everything ready to be hyper critical, so thanks so much for saying that.

In my experience, I found the switching cost to be low for things like copy changes and css stuff (or lower than I expected). Obviously I am incentivized more than anyone else to use it but it’s actually painful to go to an IDE to make those small changes after you get used to it.

I don’t realistically expect anyone to use us as a full IDE yet. It’s got a ways to go but for simple things, it’s awesome. We’re going to keep chipping away though.

25. jsunderland323 ◴[] No.45905644[source]
Sort of. I think we want to leverage the parts of the runtime that Cursor wouldn’t be as good at. I don’t expect to replace Cursor, I expect to be better at a lot of React things that take advantage of the runtime and browser context.
replies(1): >>45906120 #
26. joshribakoff ◴[] No.45905662[source]
Astro does the same, or something similar, but without an extension i think — https://docs.astro.build/en/reference/experimental-flags/chr...

It seems to leverage some official chrome devtools workspaces concept.

replies(1): >>45905806 #
27. jsunderland323 ◴[] No.45905673{4}[source]
Did you watch the demo?
replies(1): >>45906265 #
28. jsunderland323 ◴[] No.45905806[source]
Nice! Yeah, I don’t think we’re the only guys out there letting you map back to your file system. I think we’re first and foremost a JSX inspector that lets you locate your line of code but then there’s a bunch of different directions you can go from there —- editing being a big one.
29. ontouchstart ◴[] No.45905944[source]
Just a thought. Can you automate live UI development in your platform with Playwright? That will make agent integration easier.
replies(1): >>45906052 #
30. marcelr ◴[] No.45905968[source]
finally! been waiting for someone to take this on.
replies(1): >>45906054 #
31. jsunderland323 ◴[] No.45906052[source]
I would love to go there! All of our fire power is going into make the IDE great at this time. Once, we accomplish that I think we may earn ourselves the right to do more exotic agent stuff with things like Playwright. But that's the general direction I think all this stuff is going
replies(1): >>45906327 #
32. jsunderland323 ◴[] No.45906054[source]
<3
33. swyx ◴[] No.45906120{3}[source]
because you're ex YC i feel ok giving some tough love that i dont think this is a good plan because cursor and v0 will eat your lunch if you get any traction, however, happy koding and may you find the thing you were meant to do.
replies(1): >>45906353 #
34. hmokiguess ◴[] No.45906265{5}[source]
Yes!
35. ontouchstart ◴[] No.45906327{3}[source]
I guess you can at least try to use Playwright for test coverage. This stuff is very hard to test in jest.
36. jsunderland323 ◴[] No.45906353{4}[source]
I don’t mind the tough love one bit. Yeah, could happen. Startups just aren’t defensible creatures, especially in the post network effect world of AI. But having spent a bit of time in the world of startups (I worked at YC), I think it’s easy to forget that people build in an incumbent’s space all the time... and yes, usually those startups get killed. But by your logic, Cursor should not exist. We should all be using GitHub copilot. The browser IDE is really a new category so I think it will be somewhat awkward for any incumbent.

To be clear, I fully expect Vercel to launch something and for them to have the best distribution in the world. I don’t think they will ever support Vite or things that aren’t Next but que sera sera.

replies(1): >>45907000 #
37. cyberdrunk2 ◴[] No.45906500[source]
and it's not compatible with latest version of react?

> React 19 Memory Optimization Detected React has detected that this is a large page and is removing source information that is necessary for JSX Tool to run. This optimization helps improve performance but prevents JSX Tool from inspecting your React components. You can either navigate to a different page or override this limitation using the proxy setup.

replies(1): >>45906544 #
38. jsunderland323 ◴[] No.45906544[source]
It is. You need to setup the dev server to overcome this limit. That’s why we put that warning there. React 19 limits the number of fiber nodes with source maps to 10k. When you enable the proxy we update it to 1m but we have to do a find replace in the source for this limit, so you have to proxy through us or let our vite plugin transform the js file.
replies(1): >>45906606 #
39. jsunderland323 ◴[] No.45906606{3}[source]
We made this opt in because React is doing this for performance reasons and you might not want us on at all times.
40. catchmeifyoucan ◴[] No.45906681[source]
I think this is cool! Honestly it’s one less click back into an IDE. I think I’d still have to hop back to commit to git, but it’d save me all the copy+paste time (esp w/ css styles).

I hope there’s a right click, “edit JSX” button.

replies(1): >>45906723 #
41. jsunderland323 ◴[] No.45906723[source]
CMD k instead of right click. But you have to have the dev server installed. We can’t edit source maps, we can only edit your actual source code. But there’s a full IDE in there so you can easily update the jsx code from your browser.
42. zaksingh ◴[] No.45906935[source]
Congrats on the launch! I think this has a lot of potential in eliminating context-switching. DevTools has always felt unintuitive/unfamiliar coming from an IDE, so just bringing the IDE UX and vim keybindings over is already a big improvement. It also makes LLM prompting feel better contextualized.

As an aside, thinking back to learning React seven or eight years ago by watching a bunch of tutorial videos where they'd switch between IDE and browser views or awkward split screens, this seems like a way better format for explainers/walkthroughs of frontend code.

replies(1): >>45906974 #
43. jsunderland323 ◴[] No.45906974[source]
Haha. I had the same thought. I told my mom if it doesn’t work out for developers I can always pitch it as a tool to teach people React.

Thanks for the comment man!

44. ontouchstart ◴[] No.45907000{5}[source]
It is going to be a very competitive market but you still have a chance if you serve the needs of professional React development. Unlike POC and MVP projects by people who are learning React, professional React projects that serve production are very complex. Developers need to deliver features without regression, debug with whatever tools they have to find out root cause and fix the bug without causing regression and more issues. Tight unit tests, integration tests and QA cycles.

I have been using Cursor + Claude (Composer) in production code base with some success. Integrations with live React DevTools in the browser could make UI debugging and iterative development much faster. But you also need to think outside of the box of IDE. It is never about IDE. It is about high quality workflow.

replies(1): >>45907089 #
45. jsunderland323 ◴[] No.45907089{6}[source]
>you still have a chance if you serve the needs of professional React development

That's my entire thesis. I think it's a long long road. But I think you've actually done a great job of pretty much seeing the whole vision.