A programming language that understands what a web app is
...Due to its expressiveness, you can create and deploy a production-ready web app from scratch with very few lines of concise, consistent, declarative code. When you need more control than Wasp offers, you can write code in existing technologies such as js/html/css/... and combine it with Wasp code!
...Interoperability with the JavaScript world is provided through a foreign-function interface, allowing Haskell code to call browser APIs or Node modules and to be called back from JS. The ecosystem includes packages tailored to GHCJS (for example DOM bindings and FRP libraries), enabling full single-page apps written in Haskell. Because it mirrors GHC closely, many pure Haskell libraries “just work,” making it practical to share code between server and client.
A proper subset of Haskell that compiles to JavaScript
...It supports pure functional programming, a Fay-specific monad, FFI, optional tail-call optimization, and integration with Cabal packages. GHC-compatible type checking, ensuring correctness. Lazy, pure functional semantics with a distinct Fay monad. Foreign Function Interface (FFI) to integrate native JS code. Compatible with standard Haskell packaging tools like Cabal.