from Hacker News

Andrej Karpathy on the State of Web Development

by mg on 3/29/25, 10:53 AM with 56 comments

  • by lolinder on 3/29/25, 12:26 PM

    This is an understandable reaction to the ecosystem, but it also misidentifies the reason for the reaction.

    Rails, Laravel, and Django exist. Elixir's Phoenix exists, and LiveView gives it even more of a full stack feel than the others historically have had. These frameworks have robust and well-defined ecosystems for all the essential bits of a typical web stack, and while yes, you have to install plugins for some of those things, that's by design and there are "canonical" options.

    The real reason for his reaction is that he's recognizing that to build stuff to full production grade you have to make trade-offs and decisions and is surprised by that. This is a bit like being surprised that there isn't one standard bridge design that can be just copy/pasted across every river. On the surface every web app looks the same, but there are subtle trade-offs that have to be made: not every web app will need every feature and the total space of features that might be required is enormous, so every attempt to build an all-encompassing product or framework that covers all use cases has just ended up creating another option that you have to consider to decide if it covers your needs—each attempt at a cure all just further complicates decision making.

    If AI is struggling to build a Rails app out of the enormous number of gems that are available and ready to be plugged in, that might be an AI problem and not a Rails problem.

  • by dijksterhuis on 3/29/25, 12:11 PM

    > [web dev] is a bit like assembling IKEA furniture. There's no "full-stack" product with batteries included, you have to piece together and configure many individual services

    > I'm relatively new to modern web dev and find the above a bit overwhelming

    tbh, it kind of shows. This whole tweet just has a vibe for me of a junior moaning about how complex things are -- and suggesting we should build a fancy new framework to solve it all instead of having to learn about the individual components.

    the modularity is a feature, not a bug. it means we can make customised systems out of re-usable components. one-size-fits solutions rarely work when you need to do that one special thing -- you can't do it because your AIO platform doesn't allow you to. there goes your chance at solving problem X for your customer (and getting paid more money).

    The truth is, things are usually somewhere between these two edge cases, or on the extremes themselves

    1. limited modularity -- low complexity, heavily opinionated and limited functionality outside of 'one-size-fits-all' (e.g. wordpress)

    2. high modularity -- high complexity, less opinionated and high functionality (e.g. AWS/self-hosted)

  • by bob1029 on 3/29/25, 12:11 PM

    > A lot of glory will go to whoever figures out how to make it accessible and "just work" out of the box

    This path is already available. It's just incredibly boring from a VC/influencer perspective. Telling devs to go read the MDN docs and stay off the lawn has been the solution for about a decade now.

    HTML/CSS/JS absolutely "just work" in 2025 if you'll give them a chance to. Piling a Rube Goldberg machine on top and complaining about how hopeless it all is looks like the stick-in-bike-wheels meme to me.

    Amazingly, the AI does a lot better with vanilla web too. You just have to really encourage it to not use all of this vendor trash because of how biased its training data is.

  • by mg on 3/29/25, 11:03 AM

    I would say the even bigger problem is that the pieces you stitch together to make a web app will rot rather quickly.

    He mentions supabase and vercel. It will only take so long, until the supabase code or the vercel service will have a breaking change. And those breaking changes add up throughout the stack. Making the cost of running a web app much higher than it would have to be.

  • by olavgg on 3/29/25, 12:10 PM

    Web development is super simple as long you use a mature stack. Just use HTML/Server side rendered templates, CSS and Vanilla JS. Then you need a mature backend framework, Spring Boot, Rails, Django and then you need a database, SQLite, MySQL or PostgreSQL.

    With this, you can create powerful web applications, with minimal dependencies and a working back button for browsers.

  • by phartenfeller on 3/29/25, 12:12 PM

    It's always the same. Big internet giants having really unique issues: scaling with millions of users at the same time, micro optimizations as they have a big impact because of the scale. So they need to really complicate things like distributed systems, eventual consistency, and unique UX etc.

    They do a good job about it and want to share it so they publish their story. Now people from other companies read this and think that this is now state of the art and they also should do this. But they don't even have the same issues.

    I work with a Low Code framework from Oracle (APEX) that literally runs in the database and serves web apps. Want a report and form on a table? Click create new app and xreate page, select the table, customize labels, maybe move things around, maybe change an item from type text field to select list with another query and done in 5 minutes. With lost update detection, easy authorization control, automatic validations for your table constraints, etc. You can still code data processing procedures but why reinvent the wheel for another web UI?

    People just choose to overengineer backend apps that only 50 people use...

  • by tiffanyh on 3/29/25, 12:05 PM

    > The reality of building web apps in 2025 is that it's a bit like assembling IKEA furniture

    I don’t understand the analogy.

    If the desire is to have a complete pre-built product (fully assembled furniture), then you’re not building but instead buying someone else’s SaaS offering.

  • by blixt on 3/29/25, 12:05 PM

    It's easy to hate on the ways web development goes wrong, but I think it's really cool that our ecosystem has so many options for people to get started. New libraries, and thus new ways of doing things, push old established practices to become better. And it would be very ambitious to implement every capacity all by yourself (whether as a company or as a framework).

    Having said that, I do think there's a false assumption that if you create a potluck of a technology stack, you've saved a lot of time. Every different technology you introduce adds a permutation, resulting in an exponentially growing way for things to go wrong. So in my opinion, if you've proven your MVP the next step is to find what technologies you could truly trust and potentially control long term (which often equates to powerful technologies with very small API surfaces), and then roll up your sleeves and build the rest of the integration stuff yourself. Specificity > power, when it comes to maintainable technology.

    Every case will be different of course, but this approach is what worked well in my experience.

  • by nineplay on 3/29/25, 4:10 PM

    Flagged - really? What could be more on topic?
  • by antirez on 3/29/25, 12:10 PM

    What he sees is useless complexity. What he is proposing is more complexity wrapping all that. That's not the way.
  • by ofrzeta on 3/29/25, 11:53 AM

    Well, what's a web app? A lot of stuff on that list exceed what's usually thought to be part of the actual web app, like monitoring, CI/CD/staging, payment. If you use something like Django, Laravel, Rails a lof bases will be covered including frontend, backend, auth, social logins, email, basic analytics etc. Choosing a framework, library, CMS also depends on the level of customization you need or want to do.
  • by morsecodist on 3/29/25, 11:55 AM

    To me web development is the one place where I do feel like there's a lot that "just works". If I had to make a native mobile app I would feel overwhelmed and confused. I wonder if this really just comes down to familiarity. It seems strange to me to assume a given domain should be easy.
  • by yahoozoo on 3/29/25, 11:17 AM

    Vibes only go so far, I guess.
  • by rs186 on 3/29/25, 11:36 AM

    The tweet is over generalizing things. It says "The reality of building web apps ...", but what he really is talking about is building a serious, scalable, production ready web app. Blob storage, email, background jobs, analytics, monitoring? Come on, you are taking about building a web based product that is often managed by several people, and if you are creating something that is serious enough to require analytics, you might as well actually understand what you are doing.

    This isn't about what most people consider "web development" or "building web apps", too much a stretch.

  • by xchip on 3/29/25, 11:39 AM

    To be honest for most of our selfhosted needs, all we need is python and sqlite.
  • by techpineapple on 3/29/25, 1:38 PM

    What’s strange is there are battery operated solutions right? Something like meteor.js or you could go with a mean stack, or be all in on AWS. Or he could just go with squarespace or Wix!

    This feels like the whole 15 standards xkcd thing. I mean, I get what he’s saying, but I also feel like his proposed solution has as many if not more problems than the problem he is trying to solve. Like, you can somewhat have what he’s suggesting now, but either you get screwed on pricing or it would reduce innovation.

  • by ud0 on 3/29/25, 1:03 PM

    People saying just use vanilla have never tried to build a modern web application with a rich UI.
  • by moltar on 3/29/25, 12:40 PM

    Is there a standard way to build a useful multi-story building yet?
  • by ErikAugust on 3/29/25, 12:18 PM

    "Supabase with a Vercel app"

    I guess mega geniuses make mistakes too...

  • by fnordian on 3/29/25, 2:29 PM

    Twitter refuses to show the page when using the Lire news reader on iOS.
  • by librasteve on 3/29/25, 10:24 PM

    mentions HTMX
  • by pipes on 3/29/25, 11:46 AM

    The responses are the usual "just use this thing I'm familiar with and it's really easy" nonsense.
  • by lvl155 on 3/29/25, 12:09 PM

    Within a couple of years we are going to start seeing AI generated and fully customized stacks. As in, database built specifically for your application and etc. You basically show inputs and you have a middle layer for debugging tools. At least that’s how I envision it.