I feel like things I have said contribute to your anxiety and I'm sorry about that. I don't have any good advice for you other than being patient. Learning new things takes time, in Programming and Life in general. While Clojure is certainly great it is not perfect either, other languages also have valid ideas and are valueable to learn too. In the end they all do the same thing just with slightly different semantics. When you finally understand "programming" the language you use doesn't matter much. It took me about 15 years to "get it" and there is so much to learn still. Be patient, don't give up. You can still build useful things, they don't have to be perfect. Just make it work and learn from it. It will be better the next time, it is all about practice. Using dependencies from npm in your CLJS projects is not at all hard, the complicated part is integrating it with :advanced compilation. You don't need to use :advanced to build something useful. Lots of work is being done to tackle the :advanced problem but it is an optimization that is entirely optional. Most of the JS world doesn't use it and works just fine. It is fine to ignore everything about :npm-deps , that feature is going to take some time to mature and will have its own set of challenges for a while. I don't use it and won't recommend using it until it is a lot more reliable. If webpack works for you then use it. shadow-cljs should enable the same kind of webpack integration as all the other languages. I'm happy to look at examples where it doesn't or even examples of other languages that do it "better". In the end don't be afraid to ask questions, we are all figuring this out as we go. Nobody has all the answers.