Sign in

Dev Wells

@wlls.dev
82 followers 70 following 312 posts

(╯°□°)╯︵ ┻━┻ Principal Eng @ Judi Health -- focused on frontend

PostsRepliesMedia
Dev Wells @wlls.dev · 16h
*caveat I have only built _one_ full Solid app to production grade and it also needed a sync engine (Zero) Love Zero, but admitting bias here that my experience is with complicated applications and this could be skill issue + types of problems I'm working on. YMMV.
010
Dev Wells @wlls.dev · 16h
We can quibble over whether or not Solid2 does that. I think as said above it solves categories of problems that plague React, for example. Ultimately I want the web to succeed and am enjoying Datastar. I think the communities can learn from each other.
000
Dev Wells @wlls.dev · 16h
I think, as we optimize against marginal devices, the general case should cater to marginal developers (or at least the mean fullstack developer trying to ship at Acme Corp.). Not to say that there can't be advanced solutions for advanced developers. But IMO we should try to raise the floor.
110
Dev Wells @wlls.dev · 16h
The complexity feels like a natural consequence of the scale of problems we're trying to solve. But if we want the web to succeed, we should continuously ask ourselves if our solutions are actually helping developers succeed.
110
Dev Wells @wlls.dev · 16h
This comes back to the reason I have, in the past year, started gravitating away from modern TS frameworks. It is hard to see how complex it is when you're deep in it every day. When you have to take a step back and work with developers trying to build stuff on undisciplined teams, it falls down.
110
Dev Wells @wlls.dev · 16h
My goal right now is to help more intermediate developers (across the stack) build better software on the web. Much is education: folks not understanding the tradeoffs and pitfalls, using abstractions they read about on LinkedIn for the wrong problem, not understanding the web as a platform, etc.
120
Dev Wells @wlls.dev · 16h
I think this has less to do with the architecture and more to do with the documentation. I think the language is (or was, might be better now) obtuse for anyone not already versed in the challenges. And maybe that's correct given the target audience.
100
Dev Wells @wlls.dev · 16h
IMO it is in the best of current TS frameworks. I raved on release about the consolidation of the metaframework into the framework. My main complaint is abstraction complexity and onboarding. Solid2 feels like a framework targeted at people who are already experts in modern JS frameworks.
220
Dev Wells @wlls.dev · 18h
As @drk.wtf said, after over a decade of having my teams fumble with SPA architecture, D* has been refreshingly simple (in the Rich Hickey sense of the word) while still giving me the tools to build high-fidelity apps. I appreciate Solid2 (and use it on an app in prod!).
110
Dev Wells @wlls.dev · 18h
This is a false dichotomy that I don't think you intended to sound as sensational given your other responses below, re: nuance. I don't really want to keep going back and forth here though. I feel like the original intent of this thread has been misinterpreted (or miscommunicated or both).
101
Dev Wells @wlls.dev · 16/09/2026
why do dentist offices all seem to have crazy tech? dentist office: 1s i'ma to stick this wand in your mouth that lets me build a 3D rendering of your entire mouth in real time PCP office: please step on this scale from the 90s and let me tap on your back three times
000
Dev Wells @wlls.dev · 16/09/2026
At the end of the day, test and measure. I'll leave it again at that, after building and leading teams building apps for years, I've been pleasantly surprised at both the developer ergonomics and resulting software I'm building with Datastar.
000
Dev Wells @wlls.dev · 16/09/2026
I'd also remind that most hypermedia apps are progressively enhanced and *do fall back* to effectively being MPAs while SPAs do not without explicitly handling for it.
101
Dev Wells @wlls.dev · 16/09/2026
I agree we're speaking in broad strokes on nuance, and am not sure I'm making my claims any clearer without a clearer example. I'll put that together when I have some time and share out.
100
Dev Wells @wlls.dev · 16/09/2026
"degrade rapidly without an internet connection" is funny to me as that's how I'd describe my experience with almost all SPAs I use today in that they are completely unusable. The error message is a result of this not being a real app.
110
Dev Wells @wlls.dev · 16/09/2026
I'm not sure I'm following--there's entire books on data-driven applications? I'm also not sure that's the takeaway that case study is trying to portray given. The point is you often need data to render (whether on server or client). You can be smart about how you do that, agree.
000
Dev Wells @wlls.dev · 15/09/2026
For some reason every time I discuss this people assume that hypermedia means full page reloads or replacing the entire page. You can do that, but that is not a fundamental assumption. A relevant interesting read: zweiundeins.gmbh/en/blog/spa-...
zweiundeins.gmbh
SPA vs. Hypermedia: Real-World Performance Under Load | zwei und eins gmbh
We built the same AI chat application as an SPA (Next.js) and as a hypermedia app (PHP/Swoole/Datastar), then benchmarked both under real-world conditions—Slow 4G, mobile device, 4× CPU throttling. Th...
110
Dev Wells @wlls.dev · 15/09/2026
We can discuss ergonomics plenty. What I'm saying is that this *has been measured* and surprised me (as someone who has built SPA for 10+ years). The rhetoric has been that for performance critical apps, data-driven apps, SPA is the way to go. I am challenging that.
100
Dev Wells @wlls.dev · 15/09/2026
As @drk.wtf said I'm not talking about in memory state vs over the network. My claim was that the fastest way to get an update to a user (fresh data over network) is HTML + domparser. So unless you're okay with working with a lot of stale data (many apps are), then this is not a red herring.
100
Dev Wells @wlls.dev · 15/09/2026
My original point though was that, unless I'm misunderstanding in which case I'd love to learn more, it's not as simple as saying that hypermedia isn't suited for apps (at scale, in case that wasn't clear). I recognize I risk being pedantic here. Thanks again!
100
Dev Wells @wlls.dev · 15/09/2026
Design affordances can be handled in both hypermedia (or at least Datastar) stacks and SPAs. The ergonomics of doing so might be easier depending on the app in one architecture or another, though each has their weaknesses too.
100
Dev Wells @wlls.dev · 15/09/2026
I think in part where we're speaking past each other is in the difference between, as you said on stream, design affordances (what do I show) and dynamic data latency (how fresh is what I am showing). The water is further muddied by this ethereal q of "who owns the state", which we can debate.
100
Dev Wells @wlls.dev · 15/09/2026
But in my experience there are many apps where that is simply not the case. A realtime dashboard for example, the app I build for a living, benefits from the server-authoritative model, regardless of network latency.
100
Dev Wells @wlls.dev · 15/09/2026
This might be besides the reality of the situation: building web apps is fundamentally hard, and your choice of architecture may allow you to move the amount of fresh data you can easily manage up and down the scale. For some apps reasoning about local data models might be preferable, I agree.
100
Dev Wells @wlls.dev · 15/09/2026
From a DX standpoint, I sympathize. From a more theoretical one, I'm confused, given that my understanding is the fastest way to get fresh data shown in a browser is zstd/brotli compressed HTML morphed into the DOM. To wit I'd expect hypermedia to perform materially better in throttled conditions?
200
Dev Wells @wlls.dev · 15/09/2026
To make sure I'm following: you're saying modern SPA frameworks account for slow networks in their design. I assume you're referring to optimistic intent and/or the fact that SPAs tend to localize more state than typical hypermedia stacks.
110
Reposted by Dev Wells
Anne Applebaum @anneapplebaum.wsocial.eu · 14/09/2026
Your regular reminder: If the Russians stop fighting, the war ends. If the Ukrainians stop fighting, their land will be occupied, their leaders will be killed, their history and language will be erased, their children will be kidnapped to serve Russia.
5953724213383
Dev Wells @wlls.dev · 12/09/2026
some interesting reads: use.expensify.com/blog/scaling... andersmurphy.com/2025/12/02/1...
use.expensify.com
Scaling SQLite to 4M QPS on a Single Server (EC2 vs Bare Metal)
Discover how Expensify achieved remarkable scaling: 4M QPS on one server! Dive into optimizing SQLite for impressive performance gains.
110
Dev Wells @wlls.dev · 12/09/2026
i haven't used DO at scale but agree that sounds right! for the systems i work on i prefer having that complexity on the server though where I can better monitor, cost, and tune it. you can get pretty far these days though with simple servers and sqlite or tuned postgres + CQRS
220
Dev Wells @wlls.dev · 12/09/2026
Thanks for engaging again. I think what's clear from this to me at least is I need to go build a few production apps :)
010
Dev Wells @wlls.dev · 12/09/2026
Datastar is an alternative that, so far for me, seems to be better on both fronts.
210
Dev Wells @wlls.dev · 12/09/2026
I say this in the same way I wouldn't (and don't) dismiss Solid or SPAs or WASM-built apps categorically. What I *am* interested in is the fact that there is a significant complexity cost to SPAs that my teams have struggled with forever. I do not think that complexity is all inherent.
110
Dev Wells @wlls.dev · 12/09/2026
I've consulted, worked on, and led teams now building SPAs in primarily React and derivatives for over a decade. They regularly fail spectacularly, and while I agree that these examples aren't it, I don't think that's sufficient to dismiss the ideas categorically.
110
Dev Wells @wlls.dev · 12/09/2026
I think I failed to convey clearly up front that: 1. These are LLM-assisted public examples, not production grade applications. 2. I'm interested in discussing the substance of reactive hypermedia (eg datastar) and where tradeoffs are in comparison to eg Solid.
110
Dev Wells @wlls.dev · 12/09/2026
The impetus for this post was in response to Ryan's stream. The argument was that Datastar is not suited to building things in the "application" tier, which I take to mean things with rich interactivity and deep clientside interaction (a la Alex Russell's definitions, for example).
110
Dev Wells @wlls.dev · 12/09/2026
I'm disappointed with how this conversation has evolved, but that's what I get for trying to have it in twitter-format. It might be more productive to chat in a different format. Feel free to reach out to me directly if you want. I think it could be interesting.
110
Dev Wells @wlls.dev · 12/09/2026
Most of the time you can get away with very, very little of the former and only need it for handling user intent. For more complex isolated state it's often preferable to go web components (props down events up etc)
100
Dev Wells @wlls.dev · 12/09/2026
D* is fairly simple in what it gives you: 1. An efficient, web standard (hence data attributes) way to bind DOM elements/events to state (via signals if you want it) 2. An efficient, web standard way to update the DOM from the server via morphing (idiomorph), almost like RSCs
100
Dev Wells @wlls.dev · 12/09/2026
We can go back and forth all day on specifics but if you're really interested... go try it! If you hate it, great. If you want to talk benchmarks or simplicity or apps at scale, happy to do that too. I didn't write this demo--I'm using it as an example. That's it.
100
Dev Wells @wlls.dev · 12/09/2026
No? You can write in whatever language you want--that's part of the beauty. In this case this is Go + Templ (similar to JSX if you're not familiar). This particular helper looks like some progressive enhancement. Look, I really encourage you to just go to the site and try it. yourself.
100
Dev Wells @wlls.dev · 12/09/2026
I'd have to defer to @drk.wtf on the numbers here but if I'm reading right this is sending 561k (compressed, thank you brotli/zstd compression) for 64 connections over some time interval. Idk what this benchmark is supposed to be but if you have an alternative bench you want to compare im open
110
Dev Wells @wlls.dev · 12/09/2026
Where are you seeing 26MB? This is my first load (33kb compressed):
100
Dev Wells @wlls.dev · 12/09/2026
in this particular case there is a persistent server with sqlite in process
100
Dev Wells @wlls.dev · 12/09/2026
depends what you're talking about. you can build hypermedia apps on serverless if that's what you're asking (seen some examples with durable objects as well) any high performance realtime app is going to want some kind of event bus / messaging system at some level though
200
Dev Wells @wlls.dev · 12/09/2026
github.com/derekr/hyper... Not 100% sure. Usually what I've seen in this architecture is you send down an action in a normal POST request and the server responds over the event stream with a "fat morph" (literally morph the entire body tag) but you can get as granular or not as you want with it
github.com
GitHub - derekr/hypersheets: Google Sheets as hypermedia demo using Datastar
Google Sheets as hypermedia demo using Datastar. Contribute to derekr/hypersheets development by creating an account on GitHub.
100
Dev Wells @wlls.dev · 12/09/2026
I don't disagree that some apps you want to be truly native. What I'm saying is that almost every app wants to sync to a server and that modern hypermedia stacks are able to do that at a clip I think you're underestimating.
010
Dev Wells @wlls.dev · 12/09/2026
hypersheets.yagni.club/s/j2c8xktqja... github.com/derekr/hyper...
github.com
GitHub - derekr/hypersheets: Google Sheets as hypermedia demo using Datastar
Google Sheets as hypermedia demo using Datastar. Contribute to derekr/hypersheets development by creating an account on GitHub.
100
Dev Wells @wlls.dev · 12/09/2026
> The server renders HTML and patches it over SSE. The browser holds only what is genuinely local — which cell is active, and whether it is being edited. Everything else, including what every other person is doing, arrives as markup.
100
Dev Wells @wlls.dev · 12/09/2026
@drk.wtf I don't want to speak on your behalf github.com/derekr/hyper...
github.com
GitHub - derekr/hypersheets: Google Sheets as hypermedia demo using Datastar
Google Sheets as hypermedia demo using Datastar. Contribute to derekr/hypersheets development by creating an account on GitHub.
110
Dev Wells @wlls.dev · 12/09/2026
I agree it's useful to discuss issues in approaches. There are countless examples of poorly architected mainstream SPAs that fail though and where undisciplined teams break the UX with them (I say as someone who works on them every day and has for the past decade+).
110