You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I built ty-pocketledger as a proof of concept. A personal expense tracker that runs on web, desktop, and mobile from the same server-rendered HTML.
The architecture:
Server (Clojure or TypeScript) → HTML + SSE → Datastar → Ty → Browser / Tauri
Server-Sent Events pushing HTML fragments to mobile devices. The server renders everything. The client just morphs the DOM. No React. No Vue. No client-side framework at all.
SSE server-rendered mobile apps shouldn't exist. It makes me physically uncomfortable. But it works. The same web components render on web, desktop, iOS, and Android.
If web components work in that setup — the most cursed architecture I could imagine — then there's more to web components than anyone realizes.
The Actual Insight
It was never about frameworks.
HTMX, Datastar, Replicant, Svelte, Vue, React, Reagent — I don't know what other cool frameworks are out there. They all solve the same problem differently. And each framework is targeting certain audience. Legit! As it should. But frameworks shouldn't own building blocks!
The real product is components. Components that:
Know their rendering context
Adjust visually to the screen
Keep the model consistent
Work across any framework that can handle web standards
The Simple Truth
If you want to go low-level, use Kotlin or Swift. Raw power. Hardware access. Native performance.
If you want to be abstract and reach every platform, use Web Components.
That's it. That's the taxonomy.
I'm not talking about games or video editors. I'm talking about the 80% of software that just needs to move web to mobile. CRUD apps. Dashboards. Forms.
Why hasn't the industry landed here? I don't know. Maybe Google and Meta keep pushing their solutions. Maybe developers are unfamiliar with web components. Maybe we're all just dazed and confused, chasing the next framework instead of solving the actual problem.
Why Web Components
I built Toddler as a component library for React/Helix. It worked. Teams used it.
Then chromalchemy in the Clojure community laid it out for me:
That's when it clicked. The components need to survive the framework churn.
Web components don't care what framework you use. They're the standard. They work with React, ClojureScript, vanilla JS, Datastar, whatever comes next. Frameworks change, web standards persist.
The rewrite was easier than expected. React state management at the leaf node doesn't bring that much leverage. You can do most of it with plain JavaScript.
Caution
Your work isn't worthless.
Wrap it. Wrap your React component as a web component. Wrap your entire page if you need to. Web components are a composition layer — props in, attributes out. It doesn't matter what technology is underneath. React, Vue, vanilla JS, whatever. As long as you know how to work with props and attributes, it all composes.
Talk To Me
I don't want you to agree with me. I want you to respond. Share your opinion. Tell me where I'm wrong. Tell me what I'm missing.
Because I've been building this stuff for years and I still feel like the industry is chasing shadows.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
It Was Never About Frameworks
The Proof That Made Me Uncomfortable
I built ty-pocketledger as a proof of concept. A personal expense tracker that runs on web, desktop, and mobile from the same server-rendered HTML.
The architecture:
Server-Sent Events pushing HTML fragments to mobile devices. The server renders everything. The client just morphs the DOM. No React. No Vue. No client-side framework at all.
SSE server-rendered mobile apps shouldn't exist. It makes me physically uncomfortable. But it works. The same web components render on web, desktop, iOS, and Android.
If web components work in that setup — the most cursed architecture I could imagine — then there's more to web components than anyone realizes.
The Actual Insight
It was never about frameworks.
HTMX, Datastar, Replicant, Svelte, Vue, React, Reagent — I don't know what other cool frameworks are out there. They all solve the same problem differently. And each framework is targeting certain audience. Legit! As it should. But frameworks shouldn't own building blocks!
The real product is components. Components that:
The Simple Truth
If you want to go low-level, use Kotlin or Swift. Raw power. Hardware access. Native performance.
If you want to be abstract and reach every platform, use Web Components.
That's it. That's the taxonomy.
I'm not talking about games or video editors. I'm talking about the 80% of software that just needs to move web to mobile. CRUD apps. Dashboards. Forms.
React Native still requires different code for mobile and web. Flutter's web story, six years in, is still "use it for the right thing". No more broken promises.
Why hasn't the industry landed here? I don't know. Maybe Google and Meta keep pushing their solutions. Maybe developers are unfamiliar with web components. Maybe we're all just dazed and confused, chasing the next framework instead of solving the actual problem.
Why Web Components
I built Toddler as a component library for React/Helix. It worked. Teams used it.
Then chromalchemy in the Clojure community laid it out for me:
That's when it clicked. The components need to survive the framework churn.
So I rewrote everything as web components. ty(rell) components.
Web components don't care what framework you use. They're the standard. They work with React, ClojureScript, vanilla JS, Datastar, whatever comes next. Frameworks change, web standards persist.
The rewrite was easier than expected. React state management at the leaf node doesn't bring that much leverage. You can do most of it with plain JavaScript.
Caution
Your work isn't worthless.
Wrap it. Wrap your React component as a web component. Wrap your entire page if you need to. Web components are a composition layer — props in, attributes out. It doesn't matter what technology is underneath. React, Vue, vanilla JS, whatever. As long as you know how to work with props and attributes, it all composes.
Talk To Me
I don't want you to agree with me. I want you to respond. Share your opinion. Tell me where I'm wrong. Tell me what I'm missing.
Because I've been building this stuff for years and I still feel like the industry is chasing shadows.
Links:
Beta Was this translation helpful? Give feedback.
All reactions