<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alex Saft</title>
    <description>The latest articles on DEV Community by Alex Saft (@fend).</description>
    <link>https://dev.to/fend</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3839687%2Fa39349db-088b-445e-96de-515ab749f9f8.png</url>
      <title>DEV Community: Alex Saft</title>
      <link>https://dev.to/fend</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fend"/>
    <language>en</language>
    <item>
      <title>Why TSRX Gives Me PHP Flashbacks</title>
      <dc:creator>Alex Saft</dc:creator>
      <pubDate>Fri, 24 Apr 2026 21:54:37 +0000</pubDate>
      <link>https://dev.to/fend/why-tsrx-gives-me-php-flashbacks-3k5l</link>
      <guid>https://dev.to/fend/why-tsrx-gives-me-php-flashbacks-3k5l</guid>
      <description>&lt;p&gt;For the past few days, the frontend community has been buzzing about a potential successor to JSX: &lt;a href="https://tsrx.dev/" rel="noopener noreferrer"&gt;TSRX&lt;/a&gt;. It was created by Dominic Gannaway(&lt;a href="https://x.com/trueadm" rel="noopener noreferrer"&gt;@trueadm&lt;/a&gt;) the creator of Inferno &amp;amp; Ripple, and former React and Svelte core team member. It is available today as an Alpha for React, SolidJS, and Ripple. &lt;/p&gt;

&lt;p&gt;And &lt;a href="https://x.com/RyanCarniato" rel="noopener noreferrer"&gt;Ryan Carniato&lt;/a&gt; has already written a detailed &lt;a href="https://hackmd.io/@0u1u3zEAQAO0iYWVAStEvw/Hk2Jiv8T-l" rel="noopener noreferrer"&gt;piece&lt;/a&gt; on it.&lt;/p&gt;

&lt;p&gt;I decided to take a look at it myself, and honestly, my feelings are mixed.&lt;/p&gt;

&lt;p&gt;On one hand, the problem it tries to solve is painfully familiar. In complex components, JSX can quickly devolve into a spaghetti of {condition &amp;amp;&amp;amp; ...}, .map(...), nested callbacks, and a sea of brackets rendering themselves.&lt;/p&gt;

&lt;p&gt;At first glance, TSRX feels like a breath of fresh air. Using regular-looking if and for statements right inside the component structure looks much cleaner: a condition looks like a condition, a loop is just a loop, and a block is a block.&lt;/p&gt;

&lt;p&gt;However, as someone who writes Solid, I can't shake the feeling that the underlying premise is essentially: "Let's do something very close to what Solid’s model already gives us, but whatever you do, don't call it Solid." Truth be told, Solid's  and  components already solve a lot of this readability issue. They flatten the dreaded &amp;amp;&amp;amp; { staircase. Sure, a dedicated templating syntax might look slightly cleaner in theory, but in practice,  and  are already perfectly readable.&lt;/p&gt;

&lt;p&gt;But here’s my real gripe. The idea of freely mixing component logic and markup triggers some severe PHP flashbacks. I'd love to see actual architectural progress, not just another ride on the pendulum: "Put everything in one file!" → "Let's separate templates for cleanliness!" → "Let's put the logic back into the markup!"&lt;/p&gt;

&lt;p&gt;What do you get when you dump HTML, CSS, JS, SQL, and server logic into a single file? You get PHP. Or, depending on how you look at it, a React Server Component. But to quote the wisdom of senior devs who have seen it all: "You really don't want to go down that road."&lt;/p&gt;

&lt;p&gt;To be fair, I have a lot of respect for the engineering behind TSRX. As a syntax experiment, it pushes the ecosystem to question some long-standing assumptions, and Ryan’s article makes a strong case for why this direction is worth exploring. We just need to be mindful of the architectural trade-offs we make in the name of better syntax and ergonomics.&lt;/p&gt;

&lt;p&gt;The takeaway? By all means, play around with TSRX—it's a fascinating experiment, and I’m really looking forward to seeing how it evolves. But if your goal is to genuinely simplify your templates and frontend logic, it might be time to give Solid a real chance. The beauty of Solid is that it leverages standard semantics. No custom templating languages, no new parsers that you have to somehow duct-tape to your IDE and the TS Language Server, and no extra boilerplate. All you need is your regular editor out of the box. And if TypeScript 7 delivers on the promised performance gains, that setup only gets better.&lt;/p&gt;

&lt;p&gt;Who knows, maybe after getting comfortable with Solid's reactive model, you'll decide you still crave that statement-level syntax and give TSRX a spin anyway. And honestly, if you have a blast with that combo — more power to you :)&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>solidjs</category>
      <category>react</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
