• devjab 2 hours ago

    > I like to make silly things, and I also like to put in minimal effort for those silly things. I also like to make things in Rust…

    I think this part is perhaps the silliest part of a very silly article. If you really like to put in a minimal effort then why on earth would you use Rust? If you want efficiency, memory management and a compiled modern language just use Go. Then you won’t even need anything but the standard library for what you want to do. Or… use Django as you suggest?

    Yes, yes we use Rust in production because we thought it would be easier (well safer) to teach to interpreted language OOP developers than c/c++ but why on earth would you ever use it for the web unless you are a member of the cult?

    • wongarsu 2 hours ago

      This is definetly something the article should have drilled down on. Why Rust? I'm sure everyone's tired of hearing why rust is an excellent alternative to c/c++ for new projects, but as an alternative against Python it gets muddier. Rust has a clear advantage in performance and memory footprint and a much better multithreading story, but those are things that aren't high priorities for 95% of web development.

      That basically leaves you with Rust's type system. Rust's type system is pretty great, and if we pretend we can't hear the Haskell developers it's one of the best type systems out there. That might seem to get in the way of quick prototyping, but on the other hand it would mesh really well with a framework like Django. One of the great things of Django was that you define your data schema, and Django takes care of both the database and a passable admin area. I'm sure you could greatly expand on that principle, with data types driving a lot of behavior and conveniences that the framework just handles for you.

      Maybe a bit like .NET, but without the enterprisy coat of paint and without putting dependency injection everywhere.

      • creatonez an hour ago

        The answer for why folks are so inclined towards doing high-level tasks in Rust... is the type system. Its sensibilities are in a sweet spot that makes it very easy to pull off huge refactors. It was also a lot of people's first introduction to algebraic data types being used in nearly all error handling (its usage of `Result<T, E> where E implements Error` and lack of nulls or exceptions). It makes a lot of progress towards the goal of "make invalid states unrepresentable", which could be really useful for web apps.

        • ActorNightly 13 minutes ago

          Typing in modern days is effectively moving the task of debugging to compile/ide annotations process instead of testing for correctness.

          Albeit it makes the process easier compared to a really shittly written code without strict typing, but against good codebases, it takes the same amount of time.

          • kortilla 21 minutes ago

            >Result<T, E> where E implements Error` and lack of nulls or exceptions

            This all goes out the window when people throw “unwrap” all over the place because “this should always succeed”.

            • creatonez 8 minutes ago

              Rust does not skirt around the fundamentals. You can still handle errors however you want, you can still blast side effects all over the place, and you still have to uphold an arbitrary set of invariants specific to the task at hand. But the ecosystem as a whole is filled with things being done the right way because the language and its linters have always been quite helpful.

          • elcritch 13 minutes ago

            > and if we pretend we can't hear the Haskell developers it's one of the best type systems out there

            Eh, Rust's type system isn't one of the best out there. It's lacking higher kinded types, etc. It's abilities in type level programming are frustratingly limited as well.

            So it's advanced aside from from Haskell, OCaml, Idris, Scala, etc. Compare to OCaml's effect system for an advanced type system feature.

          • paulgb 2 hours ago

            The author is clearly building things for the joy of it. If she gets the most joy from Rust, that's what she should use!

            > See, if I want to make something for the web, I could use Django but I don't want that. I mean, Django is for building serious businesses, not for building silly non-commercial things!

            Personally, I spent the first decade of my career switching between languages, believing that I should use the best tool for any given job. I spent the last ~five years doing mostly Rust, and I've learned that there's a level of mastery of a language you can never quite reach if you're always context-switching between them, especially a language as “deep” as Rust. This means I write things in Rust that Rust is not the best language for.

            • brendamn 7 minutes ago

              > If she gets the most joy from Rust, that's what she should use!

              In the past I’d try to justify why I’d done something a certain way when another way would’ve been faster / better / cheaper, but I now realise that (at least for personal pursuits) an acceptable answer to “why?” is simply “because I wanted to”.

              • oguz-ismail 6 minutes ago

                >she

              • phoronixrly 2 hours ago

                What kind of logic is this... The Rust language is quite rigorous, so web frameworks on it should also be equally laborious to work with? You have to roll your own authentication, you have to do your own routing, you have to do ad-hoc string manipulation instead of templates?...

                The person likes writing in Rust, and would like to have a batteries-included web framework so they can tie together a web app quickly on the language they like to use... And I know they did not include https://rocket.rs/ in their 'existing ecosystem' section.

                • lovethevoid an hour ago

                  If you find the language rigorous, a web framework can't magically do away with that. It's genuinely illogical to believe so. There are plenty of web frameworks on Rust that are quite nice to use, but they are still Rust, with all its shortcomings in the same way Django is still Python with all its shortcomings.

                  What you're asking for is a DSL built on top of Rust for the purpose of creating web apps.

                  • hinkley 4 minutes ago

                    Counter example: stringly typed code can be written anywhere.

                    • phoronixrly an hour ago

                      Show me where I asked for a framework that magically turns Rust into Ruby. The person has created a list of (high-level!) features that they need. None of them are 'no borrow checker'.

                  • dwattttt 38 minutes ago

                    I don't as a rule web dev, so when I do I fall into the same category as the author: lowest effort to get something mostly right.

                    An explanation for "why bother try to have a low effort web server in Rust?" that I haven't seen mentioned: Once you're past the introductory phase of being familiar with Rust, if you don't need to pedantically handle every error case, it can be _very_ simple.

                    A low effort "doesn't have to be very flexible" web server would be terrific & easy to use in Rust.

                    Having said that, I'm not aware of the actual offerings available. Maybe there is one, other posts have suggestions.

                    • beeflet an hour ago

                      It could beat using C/C++ for using an embedded web server. I remember I tried that once and a lot of the work was using aho-corasick for working with paths, handling cookies and dealing with a bunch of nasty error handling all of which in theory would be easier in rust.

                      My problem wasn't so much dealing with memory management, but trying to put an upper bound on memory usage and failing nicely when that upper bound is met. I generally don't like working with garbage-collected languages, or having to use some niche application-specific language when I can just use a general-purpose language instead.

                    • jvanderbot an hour ago

                      Yes the intersection of compiled performant and web is mostly filled by Go.

                      • andrewxdiamond 2 hours ago

                        > I also like to make things in Rust

                        Seems like a good enough reason to use it to me, but perhaps I’m just another cult member.

                        > we use Rust in production because we thought it would be easier (well safer) to teach to interpreted language OOP developers than c/c++

                        I think rust is just safer period, regardless of your level of expertise or background. Or are you saying that every memory safety bug was written in by someone inexperienced?

                        Not to mention the concept of “sharing code.” See I may write garbage tier rust code that basically glues together a bunch of libraries, many of those libraries are written by programmers way better than me, and I can gain performance and safety from using their work. The performance difference between languages like Rust and JS is huge, even if I, tainted by my background in Java, write dogshit code.

                        • lnxg33k1 2 hours ago

                          As a Linux user I’ve had to deal with these kind of people who wouldn’t use something new unless it was made the same of what they’re currently using, all my life, they just are not able to get it

                          • gcau 32 minutes ago

                            Rust has benefits besides just memory safety and being efficient, it has great language design and a great toolchain. I chose (learning) rust over golang for quite simple projects with no performance requirements, out of sheer frustration with the toolchain/design of go, golang came off to me as "let's try to be special and make bizarre design decisions" which made it confusing to learn, not only that but I very quickly ran into pain points, whereas rust felt like everything just took the most logical straightforward path, and everything "just worked". It, to me, genuinely feels simpler, because things were what I expected. Kind of like apple simplifying their mouse to have no buttons and thinking it's very simple and easy, but then its just more complicated because it's so unusual, whereas everyone knows exactly how a normal mouse works. Just my view. I use typescript and needed a language to make a couple simple programs that could compile to a single executable, I'd love another option but don't want to use one that's not matured enough.

                          • paulgb 3 hours ago

                            I was surprised not to see Rocket (https://rocket.rs/) mentioned among the frameworks the author listed; I haven’t used it myself because I _like_ the more unopinionated axum/actix-web, but as I understand it its goals are much more in the vein of what the author wants in a batteries-included framework and it’s been around for a while now.

                            • wslh 2 hours ago

                              I 100% agree. I'm just a casual multi-language programmer these days, but I'm familiar with Rocket.

                            • bsnnkv 29 minutes ago

                              So strange reading all the comments here saying that Rust is not a language for "lazy developers".

                              I'm an incredibly lazy developer and Rust only makes me lazier. I can pretty much turn off the part of my brain that deals with "programming language" stuff and put all that energy towards the part of my brain that deals with "building stuff" whenever I write code in Rust, because I have a high level of confidence that the language itself isn't trying to make me shoot myself in the foot at every turn.

                              Rust is the only language where I can open something like Notepad without an LSP or highlighting, write code for an hour without testing or compiling, and then run clippy a few times to see and make the suggested fixes. It doesn't get any lazier than that.

                              On the web framework topic: Rocket is the greatest "lazy developer" web framework I've ever used.

                              • giancarlostoro 21 minutes ago

                                Python has Django, C# has ASP .NET Core, Ruby has Rails, and so on... If you want to really make Rust take off with web development, build up a full-feature solution.

                                Rocket is maybe the closest? But it's not as batteries included as any of the frameworks I've mentioned.

                                • dougthesnails 34 minutes ago

                                  Take F# for a spin. It offers nearly all of the type system tomfoolery one craves and all the tooling and nice-to-haves one wants. The big drag is that the async story and memory management aren't as big as a time vampire as Rust, so you do run the risk of actually solving business needs. I am sure some part of dealing with Microsoft can fill that void, though.

                                  • axegon_ 2 hours ago

                                    There is one: Poem[1]

                                    The author mentions flask but looking at the "What we need section", I don't think flask covers those. I hate Djago with a passion but if those are the requirements, I think Django is the one that closely resembles what the author is describing. So Poem is not a good candidate either in that regard. Poem is all in all, something that closely resembles FastAPI, which is actually a complement. I've tried half a dozen rust web frameworks and they all come with a ton of boilerplate fiddling with the initial setup. Which is a problem if you want to get things done fast. In that regard, poem nails it. Yes, actix has a considerably better performance but unless you are aiming for sub-30 millisecond responses, then actix is not what you should be looking at to begin with. Also if you crave a Pydantic, there is a crate that sort of does that for you: https://crates.io/crates/poem-openapi

                                    [1] https://github.com/poem-web/poem

                                    • giancarlostoro 20 minutes ago

                                      Not just Django, probably Rails, ASP .NET Core, and many other full-feature, batteries included web frameworks. Emphasis on framework.

                                    • godisdad 2 hours ago

                                      If the post were C++ focused instead of Rust would it make the same, more or less sense?

                                      A systems language with a high cognitive barrier to entry, compile times and less than a decade of wide adoption can’t reasonably be expected to compete with something like Rails in terms of approachability

                                      • elAhmo 2 hours ago

                                        Rust is not for lazy developers and there are other languages if you want to put minimal effort in building things.

                                        • p1necone 2 hours ago

                                          I'm a lazy developer and I love languages with an "if it compiles it works" feel. I'd much rather hack around in rust or typescript with half my brain switched off and a beer in hand and eventually get working software than hack around in javascript with half my brain switched off and a beer in hand and get more and more broken software until I eventually give up.

                                          • 27theo 2 hours ago

                                            TypeScript sure, but Rust? Half your brain switched off? There is a middle ground between unfettered madness and the Rust compiler's strict regime. Maybe try Elm.

                                            • RandomThoughts3 2 hours ago

                                              Then just use Ocaml or F#. You are welcome.

                                          • mifydev 2 hours ago

                                            There is https://shuttle.rs. Not only a framework but a tool that can generate all the web boilerplate around it, sounds lazy enough for me!

                                            • PedroBatista an hour ago

                                              Possible unpopular opinion: Rust is a systems language, doing "web work" in Rust is a waste of effort as there are much better languages and ecosystems for that.

                                              • beeflet an hour ago

                                                IDK I use C/C++ all the time for web servers. It's lightweight and lets you pretty easily/quickly call C/C++ and low-level code and gives you a lot of control in terms of networking. You can pretty much "do anything" in a straightforward generic way without having to learn some application specific language like PHP or through nginx/apache configuration files.

                                                Having a rust alternative to something like libmicrohttpd would be nice and I would use it.

                                                • echelon an hour ago

                                                  Counter-point: developing web services in Rust is just as easy as doing it in Go or Java, yet you now have an excellent type system (sum types!), an excellent package manager, and extremely good performance.

                                                  You can do dependency injection in Rust to share connection pools just like you would in Java, and it's super simple to write threaded background tasks.

                                                  Google gave a talk recently that said they measured Rust developers as no less efficient or productive than Go developers [1].

                                                  It's a fantastic language and you shouldn't ever limit yourself to systems programming with Rust. It can do so much more than that.

                                                  [1] https://www.ardanlabs.com/news/2024/rust-at-google/

                                                • djbusby an hour ago

                                                  Servo is in Rust.

                                                  I want to make an app in Rust that hosts Servo in it with my business logic in maybe SciterJS - like electron but hopefully lighter?

                                                  Something, just a business software guy who wants something with more control than an webapp and not so heavy like electron.

                                                • yarg an hour ago

                                                  I consider myself a lazy developer: I like to write code that minimises the amount of code I'll need to write to incorporate new features in the future.

                                                  Laziness isn't necessarily a bad thing, depending on how it's implemented.

                                                  • tombert an hour ago

                                                    I am so glad I moved away from the web. I remember spending lots of time playing with different frameworks for Node.js and Java and PHP and Python, all with different tradeoffs, and all of them suck the fun out of programming out of me.

                                                    Yeah yeah I know <whatever> Framework is great and good for stability or something, but using a framework makes something that I enjoy (programming) feel more like filing out my taxes, just so I can end up with a mediocre CRUD application that more or less works for the project I am working on.

                                                    I have removed myself to from the web and programming almost instantly became more fun for me again.

                                                    • perrohunter 2 hours ago

                                                      The http server in the std library is one of the things Go got right and improved it's adoption, rust needs something similar

                                                      • kuon an hour ago

                                                        Just use Phoenix and live view.

                                                        Prototype is easy and fast. Scales well to very large user base on a single node. Interactive client side without even writing JS.

                                                        I love rust, I really do, I use it for all kind of things. But for web app, the Erlang architecture is so well designed and mature you cannot compete.

                                                        Also we use rust and zig from Erlang with native modules for video processing and AI, the elixir/Erlang "skin" gives you immense flexibility and productivity with almost no performance hit.

                                                        • the__alchemist 2 hours ago

                                                          100%! I love Rust, but I will still use Python for backends because of Django. Rocket, Actix, Axum etc are more like Flask, but without Flask's integrations for the services. I don't understand why there are so many competing microframeworks; one of them should have IMO pivoted to a Django-like a while ago.

                                                          • delduca 2 hours ago

                                                            What make rust better than any language when the bottleneck is the network or the database?

                                                            • drpossum an hour ago

                                                              Not every application or even web application bottlenecks at the network or database level.

                                                              • yakshaving_jgt 2 hours ago

                                                                The bottleneck is mostly developer hours.

                                                              • rob an hour ago

                                                                PHP's Laravel can do everything in that list. I'd just stick with that and focus on whatever you're trying to do, especially as a lazy developer.

                                                                • aabhay 2 hours ago

                                                                  Rust has some great and useful web frameworks that are a joy to use, once you understand what is going on. For example, in Axum, they use traits cleverly to allow you to use dependency injection the same way that fastapi uses it. But at least when I started using it, that wasn’t an insight made bluntly clear with tutorials as good as tiangolo’s. Instead, I had to piece it together via examples in the axum repo as well as from watching a youtube video.

                                                                  Don’t fear, Rust can be as simple and clever as any other language. And the Rust core OSS developer community has spent at least the last ten minor versions improving dev ex considerably.

                                                                  • skeptrune an hour ago

                                                                    >once you understand what is going on

                                                                    I think this is the big issue. We as members of the Rust community should be doing more to explain all the patterns for webservers in particular.

                                                                    Support is there, but it's non-obvious.

                                                                    • CoconutMilk an hour ago

                                                                      Curious which YouTube video you watched that helped learn Axum.

                                                                  • Barrin92 2 hours ago

                                                                    If you want to make a silly, minimal effort hobby project simply don't use Rust. I'm gonna be honest I don't understand this entire genre of using extremely complex, highly optimized systems languages for tools that don't need them. Your flow chart should basically go like this:

                                                                    "Do I need zero cost abstractions because I'm writing a computationally expensive very serious project?" If the answer is no use a garbage collected, runtime managed language.

                                                                    • kstrauser 2 hours ago

                                                                      I don’t know about that. I already knew a little Rust last month when I wanted to write a REST API server that would benefit from being deployable as a single executable. I probably spent a grand total of 2-3 hours researching which framework to use (actix-web for me), reading the code, and implementing the endpoints I needed. The end result ended up looking an awful lot like a Python Flask app. The actual code writing part of the project wasn’t any more complicated than using any other language might’ve been.

                                                                      Learning Rust and learning web service programming at the same time would have a steep curve. If you already know the basics of Rust and have written web services before, writing a new one in Rust needn’t be stressful.

                                                                    • BikeShuester 2 hours ago

                                                                      I'd rather see Crystal on Rails. Combines the elegance of Ruby with the performance of a compiled language. And of course: macro support.

                                                                      • dartos 3 hours ago

                                                                        Isn’t there a rust rails clone?

                                                                        Yeah, it’s called loco https://loco.rs/

                                                                        FWIW I prefer the pile of libraries. Big frameworks are good for scrappy startups trying to push their product out asap, but in most of situations, I’d like a lower abstraction system to build on.

                                                                        • erlend_sh 4 minutes ago

                                                                          This needs to be higher up. Loco seems to be exactly what OP is looking for, yet it wasn’t mentioned in the article.

                                                                          • hermanradtke 3 hours ago

                                                                            Rails clones in modern languages don’t get wide adoption. I wrote about why I think that is: https://hermanradtke.com/why-your-rails-like-framework-is-no...

                                                                            • paradox460 2 hours ago

                                                                              For what it's worth, Phoenix is quite rails like, as is the ash framework, and both are quietly popular

                                                                          • jknoepfler 2 hours ago

                                                                            I wish the author success in their endeavor, but Rust is pretty far down the stack of languages I'd use to deliver a webserver.

                                                                            I look at Rust for serving web-traffic and I see: dreadful concurrency model (I will never voluntarily go back to async/await after working in Golang), weak client library stories (if I'm writing a service layer for a db, etc.), high barrier to entry, thin overlap with the core Rust value proposition (correctness around memory access, performance).

                                                                            That's not even addressing the "what happens when my entry-level dev has to write something that interops with a web framework written in Rust." My heart can't take those code reviews, I might as well just write that shit myself without a framework for all the pain that's going to cause.

                                                                            Note: I don't write a ton of Rust, for reasons that are maybe kind of obvious. I reach for it whenever C seems correct, which is rare but not never (for me).

                                                                            • skeptrune an hour ago

                                                                              > dreadful concurrency model (I will never voluntarily go back to async/await after working in Golang),

                                                                              Rust supports golang style message-passing concurrency if you want it[1]. I'd argue Rust mpsc channels are actually more powerful than Golang's and add richness to message-passing concurrency modeling.

                                                                              [1]: https://doc.rust-lang.org/book/ch16-02-message-passing.html

                                                                            • stonethrowaway 39 minutes ago

                                                                              The author is I think conflating laziness for joy. We don’t care to be lazy because that won’t do it. But we do want to have a language that we like to use. To look at, to play with, to understand and to rally behind.

                                                                              There is no one web framework that will satisfy all criteria and all layers of what a web framework needs. Every so often we have to migrate as technology catches up and changes the ecosystem, like wasm did with Blazor.

                                                                              I’d rather have a language that programming is a joy in. The laziness is a nice side benefit. I can adapt such a language to changing landscape any day. I know Ruby is such a language, and hence Rails adopts it’s joyful mentality. But is Rust a joy to program for? That I can’t say for sure.

                                                                              • skeptrune an hour ago

                                                                                It really doesn't, actix is already there. Recently built my startup code over the past couple years with Actix and it had literally everything we needed easily. We just need more documentation and reference code bases demonstrating how to do these things. Rust devs tend to be fairly advanced and seemingly don't write enough docs or shares.

                                                                                >Routing/handlers

                                                                                Actix has it.

                                                                                >Templates

                                                                                Minijinja or liquid-rust[1]

                                                                                >Static file serving

                                                                                actix-files[2]

                                                                                >Logins

                                                                                Actix with oidccore is fantastic and easy[3]

                                                                                >Permissions

                                                                                Actix FromRequest is literally perfect. We have perm levels (admin, owner) and per-route perms for more fine-grained control.[4]

                                                                                > Database interface

                                                                                Diesel with diesel_async for connection pooling has been flawless at scale.

                                                                                > Admin tooling

                                                                                We didn't do this, but it would be simple with a bin/load-data.rs file that runs via a docker start command or tmuxp pane.

                                                                                > Hot reloading

                                                                                Cargo watch is getting deprecated, but was great. Bacon and and Watchexec are fully qualified successors. CSS watch systems work with the templates already same way as they do for SPAs.

                                                                                > Background tasks

                                                                                Make a bin/worker.ts file which defines a single binary and then use redis or another queing sytem to communicate between the worker and core server. We loaded all of HN (40M docs) into a search index with this approach and it was easy.

                                                                                > Monitoring/observability

                                                                                There's a decent story here with structured logging. Zero to production in Rust has a good chapter on it (2020) [5]. Lots of progress has been made since and exposing prom metrics endpoint is straightforward [6]. Sentry support is also decent and they sponsor actix.

                                                                                > Caching

                                                                                Imo, the story with Redis + actix is fine. We do this with our auth middleware to reduce latency on that operation since it happens with every route and I think it's smooth with FromRequest.

                                                                                > Emails and other notifications

                                                                                What's wrong with SMTP? Plus, Keycloak will handle your password reset infra out of the box. SDKs here could be better, but the APIs are fine and not too bad to do with Reqwest yourself.

                                                                                > Deployment tooling + CSS/JS bundling

                                                                                Imo, both of these things are the same as with other languages. Rust could use more documentation, but I don't think there's anything making it particularly hard to use.

                                                                                [1]: https://github.com/devflowinc/hn-search-RAG/blob/main/actix-...

                                                                                [2]: https://github.com/devflowinc/hn-search-RAG/blob/main/actix-...

                                                                                [3]: https://github.com/devflowinc/trieve/blob/main/server/src/ha...

                                                                                [4]: https://github.com/devflowinc/trieve/blob/main/server/src/ha...

                                                                                [5]: https://www.lpalmieri.com/posts/2020-09-27-zero-to-productio...

                                                                                [6]: https://romankudryashov.com/blog/2021/11/monitoring-rust-web...

                                                                                • tightbookkeeper 2 hours ago

                                                                                  “Slow” scripting languages worked in the 90s for the web and they work even better for now, plus you have more to choose from. The key is to shell out to other tools for heavy lifting, like a database. Multi process architectures are where Linux really shines.

                                                                                  Rust can fit in that picture, but it doesn’t need to be routing http.

                                                                                  • yakshaving_jgt 2 hours ago

                                                                                    Yesod has most of the things on this wishlist (though it's Haskell, not Rust), and Yesod is generally awesome. I've been working with it for the past several years, and I look forward to the next several years with it.

                                                                                    • pmccarren 2 hours ago

                                                                                      s/lazy/efficient/g :)

                                                                                      • henning 3 hours ago

                                                                                        Whatever you do, don't make this an RFC in a Rust repo/something up for debate and discussion. 500+ messages and literally years later, no one will agree on a single thing. Just make the thing you want and if people don't like it, they can stick with Actix.

                                                                                        • doctorpangloss 2 hours ago

                                                                                          For new web applications, why recommend alternatives to Next.js?

                                                                                          How do you convince someone to use an alternative? The knowledge needed to understand why will help you get close enough in Next.js anyway.

                                                                                          • googledocsftw 2 hours ago

                                                                                            1. Lots of dead ends. Fetch cache limit for example. Cant replicate prod page caching behaviour in dev. Etc. Many issues with 100 thumbs get abandoned.

                                                                                            2. NodeJS. Not everyone likes it.

                                                                                            3. It is slow. Yes it is! Try to get good web metrics with Next I dare you!

                                                                                            4. Premature release of App Router. Will they do something like that again.

                                                                                            • doctorpangloss an hour ago

                                                                                              I appreciate that you’re getting to the crux of the matter instead of downvoting.

                                                                                              In our experience elevating the web metrics in Next.js takes the same expertise as doing it in any other framework. Our experience with Vertx and Microsoft’s dotnet web frameworks have been good, but Next.js got us to a fast, featureful, performant website sooner and with more flexibility around requirements. I won’t pass judgement on rust frameworks I haven’t used, but it’s just to say that in an honest accounting, a naked backend framework is less than half the product when you’re talking about web applications actually worth making with original ideas. Unless you work at Google.

                                                                                              • googledocsftw an hour ago

                                                                                                Ok I will bite. How did you manage to get scripts to defer?

                                                                                            • drpossum an hour ago

                                                                                              The npm dependency ecosystem is extremely tangled. I work with node frequently, but there's plenty of opportunities for bad actors to introduce abuse and I'm wondering when the other shoe will drop.

                                                                                              • johnny22 2 hours ago

                                                                                                Next.js is not nearly flexible enough. I'd never use it. It feels like rails, but somehow even more tightly coupled than that.