I started using kotlin-js a few years ago. That was after using typescript in a project. Unlike typescript, kotlin-js is very unapologetically Kotlin first. It has some facilities to enable interfacing with javascript libraries (mainly the dynamic keyword) but mostly it's just Kotlin. Which means things like refactoring works. The compiler stops you from deploying broken code. And it's a nice language that is well suited for frontend development as demonstrated by its popularity on Android (and increasingly IOS via compose IOS).<p>I come from a Java background and have mostly done server side until a eight years ago when being in charge of a startup meant I could not be picky about what I did and had to be able to do all of it (web, server, devops, etc.). That started with me inheriting a javascript code base. As javascript codebases go, it wasn't horrible but still pretty mediocre compared to what I was used to. No tests, obviously. And a lot of very verbose gibberish dealing with promises and what not.<p>I took the opportunity to learn typescript and migrated quite a bit of javascript code to that. I like typescript; it's great. But it is a bit of a compromise in that all javascript is valid typescript. Meaning, you inherit all the ugliness and weirdness with typescript and you need to be careful with how you use it. But it's a fine language and having a decent static type checker just wipes out whole categories of bugs that I don't need in my life. I found plenty of those migrating the Javascript code. Or rather the compiler did. I just fixed them as it found them. Cheap success IMHO. The downside of migrating javascript code is that a lot of it is still javascript and you end up either replacing a lot of its ugliness or not touching it until you have to because, for example, it's obviously broken or not right.<p>Fast forward a few years and another startup and I had a frontend developer whose only experience was Kotlin on Android. And I needed a webapp in a hurry and had no budget for bringing in re-enforcements. I considered doing react and typescript and training the person up. But instead, we evaluated using kotlin-js. Much to my surprise, this was actually pretty good. I had been using Kotlin server side for a few years and it obviously worked well on Android. But kotlin-js on the web felt risky. Yet a few weeks in we were getting kind of productive. We had integrated a few javascript libraries, picked a ui framework (fritz2) and my frontend developer was getting quite productive with it.<p>That was three years ago. That app still exists. As a technology choice it's been great. It was definitely a wild ride though in terms of being an early adopter. We were dealing with a rapidly evolving library ecosystem (kotlin multi platform), compiler bugs, a complete compiler rewrite in several steps (2.0 RC2 was released a few days ago), and a lot of other things. However, life is pretty good doing kotlin-js these days. If you want a break from typescript, it's well worth checking out. It would probably be considered cutting edge or risky in a lot of places. But it definitely worked well for us.