In this post I will discuss 11 different frameworks in 11 different languages that allow us to write frontend code — some of them compile down to WASM and some of them simply create web components, the list is not ordered by any reasoning.
Please don’t take it as me recommending one over another, I tried only a subset of those frameworks and never in production.
Blazor | Build client web apps with C# | .NET
Blazor is based on the .net framework and uses C# as it’s language of choice, it compiles down to WASM, the great promise as with most of these frameworks is the ability to share code between the frontend and the backend.
Bolero: F# in WebAssembly
Getting Started Writing HTML HTML templates Using Elmish Routing Remoting Upgrade guide
Bolero is the little brother of Blazor, it’s based on it but uses F# — a Microsoft functional language — instead of C# and has the same promises that Blazor have with all the greatness of a functional language.
We can’t talk about web apps in backend languages without talking about one of the biggest announcements from this year’s Google/IO, flutter is hot right now with mobile developers, and it’s finally coming for the web!
Vugu: A modern UI library for Go+WebAssembly
Pure Go. Targets WebAssembly (and/or server). Most modern browsers supported. Experimental, for now. Really cool.
Vugu is a Go framework that is largely based on the syntax of Vue, and is being compiled to WASM, it’s completely open source and really easy to get started with.
Elixirscript + Elixirscript React (Elixir)
Vaadin Framework | Vaadin
Easy-to-use Java Web UI framework. Vaadin Framework is a Java UI framework and library that simplifies your web…
Vaadin is unique, it tries to bridge between multiple JVM languages, and Web components, the code will come out is Polymer components.
Rust framework for building client web apps. Contribute to DenisKolodin/yew development by creating an account on…
Yew is written in Rust and features a syntax very similar to React, it compiles down to WASM and is really gaining in popularity lately.
PyPy.js is an experiment in building a fast and compliant python environment for the web.
PyPy is an alternative implementation for python, which allows us to run python in the browser through WASM.
Kotlin wrappers (Kotlin)
Qt for WebAssembly | Qt 5.12
WebAssembly is a binary format that allows sand-boxed executable code in web pages. This format is nearly as fast as…
As you probably figured out by now, WASM has opened a door for a lot of desktop framework to work on the web, and QT is one of the biggest desktop frameworks out there, meaning that in the future we might see ports of Autodesk and Adobe software running in the browser, mostly as a big canvas through WebGL API.
Coming soon — Swift WASM (Swift)
SwiftWasm - compile Swift to WebAssembly
Run Swift in browsers: SwiftWasm compiles your Swift code to WebAssembly.
This is not a part of the list since it’s not exactly out there yet, but swift is currently implementing a port for WASM, and that will open a way to develop swift on the browser — but why is swift here? it’s not a backend language! — well, swift started as an IOS/OSX language, but there are a few implementations for the backend too: Vapor/Kitura(IBM)/Perfect.
There are a lot more frameworks than I can count here, but I tried to cover the most popular ones I know, the frontend scene is becoming more interesting over time and it’s nice to see that it keeps growing and that my skills as a backend developer can be used to write frontend as well.