4 ms·
The CEO said > It's 3M+ lines of code across thousands of files. The rendering engine is from-scratch in Rust with HTML parsing, CSS cascade, layout, text shap
by nindalf 9mo ago
The CEO said
> It's 3M+ lines of code across thousands of files. The rendering engine is from-scratch in Rust with HTML parsing, CSS cascade, layout, text shaping, paint, and a custom JS VM.
"From scratch" sounds very impressive. "custom JS VM" is as well. So let's take a look at the dependencies [1], where we find
- html5ever
- cssparser
- rquickjs
That's just servo [2], a Rust based browser initially built by Mozilla (and now maintained by Igalia [3]) but with extra steps. So this supposed "from scratch" browser is just calling out to code written by humans. And after all that it doesn't even compile! It's just plain slop.
[1] - https://github.com/wilsonzlin/fastrender/blob/main/Cargo.toml https://github.com/wilsonzlin/fastrender/blob/main/Cargo.tom...
[2] - https://github.com/servo/servo https://github.com/servo/servo
[3] - https://blogs.igalia.com/mrego/servo-2025-stats/ https://blogs.igalia.com/mrego/servo-2025-stats/
- zipy124 9mo agoHonestly as soon as I saw browser in rust I assumed it had just reproduced the servo source code in part, or utilised its libraries.
- nindalf 9mo agoI thought they'd plagiarise, not import. Importing servo's code would make it obvious because it's so easy to look at their dependencies file. And yet ... they did. I really think they thought no one would check?
- deleted 9mo ago[deleted]
- satvikpendem 9mo ago> And yet ... they did. I really think they thought no one would check? I doubt even they checked, given they say they just let the agents run autonomously.
- bonesss 9mo agoHypothetically: what if they did check, only in order to ‘check’ they asked the LLM instead of manually verifying and were told a story? Or, perhaps, they did check manually but sometime after the files were subtly changed despite no incentive or reason to do so outside of a passing test? … Humans who are bad and also bad at coding have predictable, comprehensible, failure modes. They don’t spontaneously sabotage their career and your project because Lord Markov twitched one of its many tails. They also lie for comprehensible reasons with attempts at logical manipulations of fact. They don’t spontaneously lie claiming not to having a nose, apologize for lying and promise to never do it again, then swear they have no nose in the next breath while maintaining eye contact. Semi-autonomous to autonomous is a doozy of a step.
- dormento 9mo agoYou know, a good test would be to tell it to write a browser using a custom programming language, or at least some language for which there are no web browsers written.
- embedding-shape 9mo agoWrite a browser without any access to the internet, is what I'd attempted if I was running this experiment. Just seed it with a bunch of local HTML, CSS and JS files from the various testing suites that exists.
- koolala 9mo agoYou would want to download all the W3C and WHATWG specifications first.
- shermantanktop 9mo agoSome of them practically have pseudocode just waiting to be picked up.
- computerex 9mo agoI think that's too restrictive; agents should be allowed to reference the internet like we do.
- semi-extrinsic 9mo agoFortran 90 should fit the bill nicely.
- g947o 9mo agoSounds like it's finally the time to put my matlab license up for good use.
- louthy 9mo agoGood idea, I propose Brainfuck
- nicoburns 9mo agoAlso selectors and taffy. It's also using weirdly old versions of some dependencies (e.g. wgpu 0.17 from June 2023 when the latest is 28 released in Decemeber 2025)
- satvikpendem 9mo agoThat is because I've noticed the AI just edits the version management files (package.json, cargo.toml, etc) directly instead of using the build tool (npm add, cargo add), so it always hallucinates a random old version that's found in its training set. I explicitly have to tell the AI to use the build tool whenever I use AI.
- arresin 9mo agoIt’s interesting that they don’t even know this
- notatallshaw 9mo agoI assume lock and dependency files are in the training data, so predicting version number tokens have high probabilities associated with them.
- computerex 9mo agoI was LITERALLY thinking the other day of a niche tool for engineers to help them discover and fix this in the future because at the rate I have seen models version lock dependencies I thought this is going to be a big problem in the future.
- deleted 9mo ago[deleted]
- satvikpendem 9mo agoJust use Dependi or similar VSCode extensions, they'll tell you if dependencies are outdated.
- 9mo ago
- f311a 9mo agoYeah, it's - Servo's HTML parser - Servo's CSS parser - QuickJS for JS - selectors for CSS selector matching - resvg for SVG rendering - egui, wgpu, and tiny-skia for rendering - tungstenite for WebSocket support And all of that has 3M of lines!
- avaer 9mo agoTo be fair, even if "from scratch" means "download and build Chromium", that's still nontrivial to accomplish. And with how complicated a modern browser is, you can get into Ship of Theseus philosophy pretty fast. I wouldn't particularly care what code the agents copied, the bigger indictment is the code doesn't work. So really, they failed to meet the bar of "download and build Chromium" and there's no point to talk about the code at all.
- koolala 9mo agoThe whole point of Servo is its not impossible to use like Chromium.
- leerob 9mo ago> The JS engine used a custom JS VM being developed in vendor/ecma-rs as part of the browser, which is a copy of my personal JS parser project vendored to make it easier to commit to. https://news.ycombinator.com/item?id=46650998 https://news.ycombinator.com/item?id=46650998
- singron 9mo agoIt looks like there are two JS backends: quickjs and vm-js (vendor/ecma-rs/vm-js), based on a brief skim of the code. There is some logic to select between the two. I have no idea if either or both of them work.
- themafia 9mo ago> is just calling out to code written by humans We at least it's not outright ripping them off like it usually does.
- wmf 9mo agoIs it using Servo's layout code or did Cursor write its own layout? That's one of the hardest parts.
- brabel 9mo agoCursor didn't write anything, they used ChatGPT 5.2.
- afishhh 9mo agoIt seemingly did but after I saw it define a VerticalAlign twice in different files[1][2][3] I concluded that it's probably not coherent enough to waste time on checking the correctness. Would be interesting if someone who has managed to run it tries it on some actually complicated text layout edge cases (like RTL breaking that splits a ligature necessitating re-shaping, also add some right-padding in there to spice things up). [1] https://github.com/wilsonzlin/fastrender/blob/main/src/layout/contexts/inline/baseline.rs https://github.com/wilsonzlin/fastrender/blob/main/src/layou... [2] https://github.com/wilsonzlin/fastrender/blob/main/src/layout/inline/baseline.rs https://github.com/wilsonzlin/fastrender/blob/main/src/layou... [3] Neither being the right place for defining a struct that should go into computed style imo.
- nicoburns 9mo agoIt's using layout code from my library (Taffy) for Flexbox and CSS Grid. Servo uses Taffy for CSS Grid, and another open source engine that I work on (Blitz) uses it for Flexbox, CSS Grid, Block and float layout. The older block/inline layout modes seem to be custom code that looks to me similar but not exactly the same as Servo code. But I haven't compared this closely. I would note that the AI does not seem to have matched either Servo or Blitz in terms of layout: both can layout Google.com better than the posted screenshot.
- brabel 9mo agoWhy would they think it's a great idea to claim they implemented CSS and JS from scratch when the first thing any programmer would do is to look at the code and immediately find out that they're just using libraries for all of that?! They can't be as dumb as thinking no one would've noticed?! I guess the answer is that most people will see the claim, read a couple of comments about "how AI can now write browsers, and probably anything else" from people who are happy to take anything at face value if it supports their view (or business) and move on without seeing any of the later comotion. This happens all the time with the news. No one bothers to check later if claims were true, they may live their whole lives believing things that later got disproved.
- bflesch 9mo agoI'm actually impressed by their ignorance. I could never sleep at night knowing my product is built on such brazen lies. Bullshitting and fleecing investors is a skill that needs to be nurtured and perfected over the years. I wonder how long this can go on. Who is the dumb money here? Are VCs fleecing "stupid" pension funds until they go under? Or is it symptom of a larger grifting economy in the US where even the president sells vaporware, and people are just emulating him trying to get a piece of the cake?
- moregrist 9mo ago> Why would they think it's a great idea to claim they implemented CSS and JS from scratch when the first thing any programmer would do is to look at the code and immediately find out that they're just using libraries for all of that?! Programmers were not the target audience for this announcement. I don’t 100% know who was, but you can kind of guess that it was a mix of: VC types for funding, other CEOs for clout, AI influencers to hype Cursor. Over-hyping a broken demo for funding is a tale as old as time. That there’s a bit of a fuck-you to us pleb programmers is probably a bonus.
- never_inline 9mo agoI don't think he intentionally lied. He just didn't know how to check that and AI wrote - [tick mark emoji] implemented CSS and JS rendering from scratch - **no dependencies**.
- adamrezich 9mo agoVery sad to see Paul Graham boosting this slop on X.
- levocardia 9mo agoI'm reminded of the viral tweet along the lines of "Claude just one-shotted a 10k LOC web app from scratch, 10+ independent modules and full test coverage. None of it works, but it was beautiful nonetheless."
- wilsonzlin 9mo agoThanks for the feedback. I've addressed similar feedback at [0] and provided some more context at [1]. I do want to briefly note that the JS VM is custom and not QuickJS. It also implemented subsystems like the DOM, CSS cascade, inline/block/table layouts, paint systems, text pipeline, and chrome, and I'd push back against the assertion that it merely calls out to external code. I addressed these points in more detail at [0]. [0] https://news.ycombinator.com/item?id=46650998 https://news.ycombinator.com/item?id=46650998 [1] https://news.ycombinator.com/item?id=46655608 https://news.ycombinator.com/item?id=46655608
- nindalf 9mo ago> I do want to briefly note that the JS VM is custom and not QuickJS It's hard to verify because your project didn't actually compile. But now that you've fixed the compilation manually, can you demonstrate the javascript actually executing? Some of the people who got the slop compiling claimed credibly that it isn't executing any JavaScript. You merely have to compile your code, run the binary and open this page - http://acid3.acidtests.org http://acid3.acidtests.org. Feel free to post a video of yourself doing this. Try to avoid the embellishment that has characterised this effort so far.
- Snuggly73 9mo agoThis is from the "official" build - https://imgur.com/fqGLjSA https://imgur.com/fqGLjSA The "in progress" build has a slightly different rendering but the same result
- nindalf 9mo agoYeah, it's not executing any JavaScript. Hey Mr. Wilson! You've spent millions creating this worthless slop. How about making sure that the code is actually being executed? Or is that not necessary to raise millions more in VC funding?