But why Web Components?

A.Mahdy AbdelAziz
On May 14, 2018 7:00:00 AM

Vaadin recently announced Vaadin 10 consisting of developer tools, Vaadin components, and Vaadin Flow.

Vaadin Flow comes with many new features and one of the biggest is the usage of Web Components for the client-side, instead of GWT components. There is no big difference on the server-side from a coding point of view, and as far as you don't touch the client-side, your development experience will remain the same. But why Web Components?

Here are my thoughts about Web Components

Web Standard

The strongest part of Web Components is that it's a standard. To give an example out of context, when we buy an electronic device from a local store, we don't check the power adapter, voltage, compatibility, and shape of the power outlet. We know for granted that it will work at home, and any other public places. That is the power of "Standard". The world is moving more and more towards standardizing tools, and especially in the technology field. Think USB-C, for instance.

When it comes to adopting the latest technology standards, Vaadin doesn't stray far away. Using standard Web Components instead of GWT-based UI components does not just give us the freedom to use any Standard Web Component inside the framework, but let’s us freely use Vaadin components with any other web framework.


The GWT project is under active development by a steering committee, and they have many modern features to release in the upcoming versions. You can also write Web Components using GWT, we have experimented that ourselves and open sourced some experimental tools to automate this.

But the majority of innovation regarding front-end technology happens outside GWT project. The community has developed a lot of new tools for Web Components to facilitate the work on the client side, in terms of testing, debugging, and even getting started.

Emerging Community

A lot of innovation is happening in the Web Components community. There is not just Vaadin community or Google, but many big companies who are currently investing in this technology. The competition drives the innovation even more. A lot of this can be directly used by all web developers and in component collections like Vaadin components.


Web Components are becoming supported by all browser vendors. The community around them is growing fast. With Vaadin Flow, however, you don’t have to care what the underlying implementation of the components is. You can keep using the plain old Java API as before, but you can also start to use the Web Component standard even more in you applications.

Your options are going to be:

Prefer to keep everything Java

Vaadin Flow is your best web-friend. It's designed to keep everything on the front-end doable in 100% Java. You get to enjoy the benefits of both, latest technology on the client-side, and without leaving your comfort zone of writing in Java for the JVM.

Prefer to keep front-end in HTML

If you want to express your UI in HTML using basic HTML tags and Web Components, you still can use Vaadin Flow to easily connect your data to it. One of the new additions to Vaadin Flow is that if you design the front-end as a Polymer template, you will be able to use it with Flow to connect it to your Java back-end.
A.Mahdy AbdelAziz
AMahdy is an international technical speaker, Google developer expert (GDE), trainer and developer advocate. Passionate about Web and Mobile apps development, including PWA, offline-first design, in-browser database, and cross platform tools. Also interested in Android internals such as building custom ROMs and customize AOSP for embedded devices.
Other posts by A.Mahdy AbdelAziz