5 ms·
When reading through the comments here, I really feel like the article was misunderstood. My summary of the article is: Point 1: React solved all the right thi
by hantusk 4y ago
When reading through the comments here, I really feel like the article was misunderstood. My summary of the article is:
Point 1: React solved all the right things, but its current trajectory, does not prioritize developing the fundamental tooling we need. React does not allow us to build a new Figma (consistent undo/redo in collaborative settings, immediate low-latency mutation of app state to reflect user changes and building fundamentals to SaaS interoperability)
Point 2: People are overwhelmed by the work, and too timid to target the fundamental architecture we need to solve these things. We're just going with the flow.
He is leading https://usegpu.live/ https://usegpu.live/ to build the fundamentals right, an encourage people to either:
- help out there, if it fits your use case, or
- start working on targeting these fundamentals, where most needed for your own use cases, don't just go with the flow.
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- h0l0cube 4y ago> React does not allow us to build a new Figma (consistent undo/redo in collaborative settings, immediate low-latency mutation of app state to reflect user changes and building fundamentals to SaaS interoperability) If I wanted to write the next Figma, the first thing I’d reach for is Phoenix Liveview + Channels with Vaxine/AntidoteDB or some other eventually consistent CRDT store for collaborative editing and host it on fly.io - I’d forgo the ‘front end’ completely
- ch_sm 4y ago> I’d forgo the ‘front end’ completely Not to dismiss your argument/stack preference, but forgoing the front end for a graphic design tool might prove difficult. EDIT: But yes, CRDT-backed stores are definitely the way to go for a requirement like this.
- h0l0cube 4y ago> but forgoing the front end for a graphic design tool might prove difficult How so? Offline support? Collaborative tools don't really have a good offline story by nature. Ping times? If you use fly.io you're going to have great availability and low latency. It's like a CDN for live apps. I'm not biased against a 'client-side front end', it's just that a collaborative tool that is 'always online' might as well use a 'live app' style where the server drives the DOM. It solves all the problems that the OP raised in the quote, and it's less about where React should go next, because client-side front end literally can't solve those problems due to their nature.
- makeitdouble 4y agoOn building the next Figma, my first reaction was that Figma should probably have been a compiled GUI application in a ideal world. Figma is a work tool where a designers are supposed to spend a decent amount of time, and when working on a specific project there is little navigation or moving to other pages. It being in the browser is a technical artifact to help the business model, but inherently there would be nothing lost if it was a local application synching data and changes with a central server. If time had to be spent making react closer to desktop apps, can’t that time be spent instead on making desktop apps as sandboxed, OS compatible, easy to download and execute as web pages ? This is something Apple doesn’t care much about, but react core devs also don’t care about desktop likeness, so it seems a to me to be a suitable alternative solution.
- jasonjmcghee 4y agoIt being in the web means I can work on any computer without having to install anything, embed a Figma in a doc or wiki, and it’s super easy to write plugins (html/css/js).
- makeitdouble 4y agoThe thing to me is...you are already dowloading the whole figma's client code base and running it in your browser. If it was a PWA it would even stay there. Your point on installation is accurate in our current ecosystem, and I wonder how we could change that so "installing" isn't a hurdle. That's clearly not a simple problem to solve, but making the web "native" probably isn't either.
- zarzavat 4y agoInstalling is a backwards step compared to accessing a URL and loading a cached resource. It’s nostalgia. What you want is guaranteed “cache”. i.e. the resources are guaranteed to stick around and not get evicted randomly, but can still be evicted if the application is updated and that resource expires.
- 4y ago
- adigau31 4y ago> React does not allow us to build a new Figma Did you take a look at Liveblocks? They have an example of an advanced whiteboarding experience: https://liveblocks.io/examples/collaborative-whiteboard-advanced/nextjs https://liveblocks.io/examples/collaborative-whiteboard-adva... And they recently released a set of APIs so thast you can build a Figma-like dashboard to seewho's in which board and set permissions: https://liveblocks.io/docs/guides/managing-rooms-users-permissions https://liveblocks.io/docs/guides/managing-rooms-users-permi...