Skip to content(if available)orjump to list(if available)

I built the same app 10 times: Evaluating frameworks for mobile performance

speedgoose

> This isn’t a todo list with hardcoded arrays. It’s a real app with database persistence, complex state management, and the kind of interactions you’d actually build for a real product.

Can you also tell ChatGPT to fix the layout so the table just above this message is fully visible without horizontal scrolling?

efilife

Also

> This isn’t just an inconvenience. It’s technofeudalism.

There are so many of these in the article. It's like a spit to the face

yuvadam

Come full circle by feeding the article back to your favorite LLM and ask it to TL;DR it for you.

sunaookami

Yeah the writing is obvious ChatGPT-slop sadly.

Edit: Related post on the front page: https://news.ycombinator.com/item?id=45722069

gr4vityWall

The user who posted that also post this thread's link yesterday, as well as many others. The account seems to be karma farming with AI-generated articles.

https://news.ycombinator.com/item?id=45724022

lukan

Can you guys share actual errors in the article, that indicate real slop?

On first glance it seems very legit and personally I would be very hesistant judging something GPT slop based on some writing style.

xnorswap

How about this?

>> Marko delivers 12.6 kB raw (6.8 kB compressed). Next.js ships 497.8 kB raw (154.5 kB compressed). That’s a 39x difference in raw size that translates to real seconds on cellular networks.

Sorry, it isn't 2006, cellular networks aren't spending "seconds" in the difference between 13kB and 500kB.

Payload size can matter, but it's complete nonsense that 500kB would translate to "real seconds".

Just spotted this section:

>> The real-world cost: A 113 kB difference at 3G speeds (750 kbps) means 1.2 seconds for download plus 500ms to 1s for parse/execution on mobile CPUs. Total: 1.5 to 2 seconds slower between frameworks.

3G is literally being decommissioned, and 3G isn't 750kbps, it's significantly faster than that.

> On first glance it seems very legit

Yes, that's exactly the danger of AI slop. It's very plausible, very slick and very easy to digest. It also frequently contains unchecked errors without any strong signals that would traditionally go along with that.

istrice

[flagged]

Biganon

English is not my native language, and I fail to understand what you mean. What's wrong, or even special, about the sentence you're quoting?

luxcem

It's a tell, a common language quirk of LLMs especially ChatGPT.

- a slow-loading app isn’t just an annoyance. It’s a liability. - The real performance story isn’t splitting hairs over 3ms differences, it’s the massive gap between next-gen and React/Angular - The difference [...] isn’t academic. It’s the difference between an app that feels professional and one that makes our users look bad in front of clients. - This isn’t a todo list with hardcoded arrays. It’s a real app with database persistence. - This isn’t just an inconvenience. It’s technofeudalism. - “We only know React” isn’t a technical constraint, it’s a learning investment decision. - The real difficulty isn’t learning curve, it’s creating a engineering culture. - This isn’t some toy todo list. It’s a solid mid-complexity app with real database persistence using SQLite. - The App Store isn’t a marketplace, it’s a fiefdom.

mcintyre1994

That sentence structure is something that LLMs seem to have converged on, so the comment you're replying to thinks this article is written by an LLM.

imiric

For better or worse, this type of writing (and coding, and ...) is here to stay.

We can dismiss it on the basis of "slop", but that would be throwing out the baby with the bath water. The reality is that pretty much everyone will rely on these tools, and it would be more beneficial for the audience to discern good content vs bad content, over whether it was machine-generated or not.

In fact, playing devil's advocate, it may have some benefits as well. For many people the content might not be in their first language, so the tools help with improving grammar, fixing typos, etc. They're the same assistive writing tools we've had for decades, but far, far, better. This makes the content much clearer and easier to read. The style of the content can always be changed in seconds, so if a certain cadence bothers the author, that can be easily changed. And, personally, I enjoy the privacy aspect. It's long been possible to identify the author of written text simply by their language, style, etc. These tools can make this more difficult, preserving the anonimity of the author. Or they can mimic the author's style, if instructed to do so. These are all powerful features.

To be clear: I can't stand "AI slop" either. I don't like that it replaces the humanity and personality of the author with something that tries to mimic it. But we should learn to accept it and see beyond it.

So the main question is: is the content of this article worthless? Or is it worth reading despite of it being machine-generated?

Hell, if it bothers you that much, ask your favorite LLM to summarize it for you, or rewrite it in any style you like. :)

xnorswap

At best it's merely robbing the author of their voice.

At worst, it's slowly nudging us all towards a future where the machine is a constant discriminator in our lives. A future where adherence to LLM-style becomes mandatory for effective communication. A future where LLMs can invisibly steer us without our realising.

bradley13

[flagged]

jtrn

In our small firm, we did a review of the usual suspects when deciding which of the big players would be the right horse to bet on for the future when planing to rewrite our core application.

We ended up with Vue vs. Svelte and landed on Vue/Nuxt since we agreed they have the most intuitive syntax for us, and it seemed like the one with the best trajectory, technologically speaking.

That was one year ago. It's not moving as fast as I would hope, but I still think Vue/Nuxt is a better choice than React at least. This article seems to support this somewhat.

Also, I did a review (with the help of all the big LLMs), and they seem to agree that Vue has the syntax and patterns that are best suited for agentic coding assistance.

The wins with regards to "First Contentful Paint" and "size" is not the most important. We just trust the Vue community more. React seems like a recipe for a bloated bureaucratic mess. Svelte still looks like a strong contender, but we liked the core team of Vue a lot, and most of us just enjoy Vue/Nuxt syntax/patterns better.

zwnow

A big advantage with Vue is also that it has options and composition API, so if one feels janky you can still try the other. I've tried moving away from Vue just to test some other frameworks but none have given me such an easy way to manage state, reactivity, modularity... I always come back to it.

hdjfjkremmr

vue is better, the problem is it's been dead for more than 3 years now.

qmmmur

What do you mean? Vue is perfectly capable and mature

panstromek

This is great write up. I especially appreciate the focus on mobile, because I find it's often overlooked, even though it's dominant device to access the web. The reality of phones is brutal and delivering a good experience for most users in SPA-style archictecture is pretty hard.

"Slowness poisons everything."

Exactly. There's nothing more revealing than seeing your users struggle to use your system, waiting for the content to load, rage clicking while waiting for buttons to react, waiting for the animations to deliver 3 frames in 5 seconds.

Engineering for P75 or P90 device takes a lot of effort, way beyond what frameworks offer you by default. I hope we'll see some more focus on this from the framework side, because I often feel like I have to fight the framework to get decent results - even for something like Vue, which looks pretty great in this comparison.

ChrisMarshallNY

This is a really good article. It’s not my bailiwick, but it must be extremely useful for folks that work in this space.

> When someone’s standing in front of a potential buyer trying to look professional, a slow-loading app isn’t just an annoyance. It’s a liability.

I liked reading that. It’s actually surprising how few developers think that way.

> Mobile is the web

That’s why.

I know many people that don’t own a computer, at all, but have large, expensive phones. This means that I can’t count on a large PC display, but I also can reasonably expect a decent-sized smaller screen.

I’ve learned to make sure that my apps and sites work well on high-quality small screens (which is different from working on really small screens).

The main caveat, is the quality of the network connection. I find that I need to work OK, if the connection is dicey.

theK

> When someone’s standing in front of a potential buyer trying to look professional, a slow-loading app isn’t just an annoyance. It’s a liability.

I've been there myself as a Dev and later on as a manager. You have to really watch out not getting locked into local minima here. In most cases its not bundle size that wins this but engineering an app that can gracefully work offline, either by having the user manually pre-load data or by falling back to good caches.

ChrisMarshallNY

> good caches

Some of the most challenging code that I write, is about caches.

Writing good cache support is hard.

delbronski

Before starting new projects I would always do research like this and try new things. But I’ve stopped looking at what is out there. I have landed on Django/React(vite). I have mastered this and can go from idea to app running in production in a matter of hours. I know there are better, faster, and more modern alternatives. But I just don’t care anymore. Maybe I’m just web framework jaded. I rather learn something else than look through the docs of yet another web framework.

jama211

To be honest, as long as your app isn’t doing something crazy complex, it’s going to be fast enough for most people even on the slowest stack. I wouldn’t worry about it, personal efficiency is way more important most of the time I’d say.

ivape

I’ll speak for you:

You’ve stopped caring because it. never. ends. Really.

0xblinq

As somebody using Svelte for a real production application, I can only 100% agree with their recommendations regarding Svelte because of the overall dev experience is unmatched. It just feels right. Easy. Simple. And I'm not even considering performance here as another benefit.

I usually make the analogy of a video game, where you can pick the difficulty. Svelte/SvelteKit is working in the "easy" difficulty level. You can achieve the same end result and keep your sanity (and your hair).

appsoftware

I've been using Svelte's custom elements (web components) to make components that slot into pages on an existing .net / alpine.js site. It's been a great dev experience and results in really portable components. Each component is it's own bundle (achieved via separate vite configs - you can also organise to bundle groups of components work together). Each of the tools in the tools section is a svelte custom element https://www.appsoftware.com/tools/utilities/calculators

aitchnyu

Can we build the elements as part of light dom? Do they call their destructor when we navigate away?

pjmlp

I will keep using Next.js, because that is what SaaS vendors support on their extension SDKs, and I have better things to do than build an ecosystem.

Alternatives are great for those without these kinds of constraints.

In which case, I rather use traditional Java and .NET frameworks with minimal JavaScript, if at all.

mfru

How do you deal with the horrendously slow on-the-fly compile times in dev mode?

I wonder how anyone gets any work done when they have to wait 10 seconds on every page load on a M3 Macbook Air

fud101

I would choose vue because you can still get paid for it but react is king by jobs. If you're playing in the hobby space then between liveview, datastar etc, there is plenty of cool stuff moving the needle. React is nice and simple IMHO which is why average devs like me enjoy it.

MarcelOlsz

>React is nice and simple IMHO which is why average devs like me enjoy it.

Maybe years ago. Now it's a bloated beast.

nawgz

Can you give some examples? I feel like React is still pretty much just React, having developed with it for a decade now. Hooks was the only meaningful API (surface) change, no?

gloosx

> when I built the first implementations and started measuring, something became clear: the issues I was seeing with Next.js weren’t specific to Next.js. They were fundamental to React’s architecture.

So here some obscure Next.js issues magically become fundamental React architecture issues. What are these? Skill issues?

chanon

The author noted that Solid is very similar to React but with a simpler mental model. This has been my experience as well. And its faster too.

fud101

How would you compare it to Preact?

econ

I believe the biggest performance hit lives in je inability to force reload a cached file with js (or even html(!)).

Setting a header only works if you know exactly when you are going to update the file. Except from highly dynamic or sensitive things this is never correct.

You can add ?v=2 to each and every instance of an url on your website. Then you update all pages which is preposterous and exactly what we didn't want. As a bonus ?v=1 is not erased which might also be just what you didn't want.

I never want to reload something until I do.

CraigJPerry

Ignoring the content of the post for a second (which IMO was excellent), the quality of the writing here is remarkable. This is a dry technical topic at heart and yet i enjoyed reading that entire report. It was as informative as i could hope for whilst still being engaging.

What a joy to read.

input_sh

This isn't just poor writing, it's ChatGPT-padded slop.

But the same is true for the content itself, no business is paying you to actually build the same app 10x, especially so if it's something as trivial as a kanban board.

Mashimo

Mhh, I found it repeated sentences again and again. It was kinda odd to read at times.

samwillis

This is a great comparison, but it depends so much on what sort of website or web app you are building. If you are building a content site, with the majority of visitors arriving without a hot cache bundle size is obviously massively important. But for a web app, with users regularly visiting, it's somewhat less important.

As ever on mobile it's latency, not bandwidth, that's the issue. You can very happily transfer a lot of data, but if that network is in your interactive hot path then you will always have a significant delay.

You should optimise to use the available bandwidth to solve the latency issues, after FCP. Preload as much data as possible such that navigations are instant.

Akhu117

I am the only one shocked that no comparison or test or thinking of native development? Web dev are this closed to other languages? I came here for this kind of comparison because of the article. headline

gbalduzzi

It's not about being closed to other languages, it's about being economically pragmatic in many, many cases.

As shown in the article, you can build ONCE an app that loads in milliseconds by just providing an url to any potential customer. It works on mobile and on desktop, on any operating system.

The native alternative requires:

- Multiple development for any platform you target (to be widely used you need *at least* ios, android, macOS and windows.) - Customers are required to download and install something before using your platform, creating additional friction.

And all of this to obtain at most 20-30ms better loading times?

There are plenty of cases where native makes sense and is necessary, but most apps have very little to gain at the cost of a massive increase in development resources.

ale

Native to the web like web components or a native platform?

croes

The problem of native apps isn't the language but the app stores.

Web deployment is easier, faster and cheaper.