Thursday, October 16, 2025

Re: State of GWT?

The only hookup with css we have is in the <head> of the initial html: <link rel="stylesheet" href="css/styles.css" media="screen">. We use descriptive classnames in the GWT widget, table.addStyleName(Css.TABLE) for instance, whereby the Css class is an interface with just classnames. Then we have a unittest that checks that all defined classnames in this Css class are present in the styles.css. 

imo GWT should not concern itself with CSS. CSS is a mature ecosystem in its own right, with dedicated tools, editors, and experts. By keeping css external, we retain the ability to leverage that ecosystem fully.
Deep css integration is not one of the USP's for GWT. There is no direct problem this integration will solve and you are basically limiting some very powerfull options in your application. 
GWT, as a UI application framework, should focus on structure, behavior, and state — the object model — and not on how those objects are visually represented.

In larger organisations there are usually frontend designers and developers in house, by keeping css external, you can use it as a business case to incorporate the existing knowledge and make GWT an easier sell over Js frameworks. For smaller organisations the same still holds, as hiring a ux/html/css expert (or at the moment that can also be done using AI) can get you amazing results for your ui.

Even better: GWT is the only ideal 'glue' between a java ecosystem and existing frontend capabilities. Now hows that for a USP wrt to other UI frameworks.
Op donderdag 16 oktober 2025 om 02:14:04 UTC+2 schreef cbruno...@gmail.com:
Also to get around the GWT CSS weakness, I just inject a TextResource instead of using CssResource. 

On Wednesday, October 15, 2025 at 7:12:58 PM UTC-5 cbruno...@gmail.com wrote:
I second the comment about GWT and CSS. Its its only weakness. Otherwise its really the only real alternative if you dislike the npm universe and want static typing and build system. 

I use GWT and Spring Boot and make use of MVP and GWT-RPC (using gwt-servlet-jakarta). 

On Saturday, October 4, 2025 at 3:50:10 AM UTC-5 RobW wrote:
Very much our experience. We build commercial apps, and having used GWT for years we know it inside out, so we can build things fast. Yes, it's in maintenance mode, but that also means it's very stable and throws us zero curve balls. We've looked at other frameworks, but all seem to end up with way more code for similar sized solutions - and we're not JS experts, so working in a single Java codebase is way way more comfortable for us. We do divert into JSNI at times to wire in some libs (codemirror, gridstack etc). But we create minimal bindings for just the API calls we need.

On Friday, 3 October 2025 at 10:37:49 UTC+1 Frank Hossfeld wrote:
A few years ago, i was thinking about moving to React or vue. So I started some pocs to see how thinks work. At the end npm has loaded some malicious code on my computer. Spooky. That's is one of many reasons to stay with GWT. Next, I am familiar with GWT. I know the pitfalls and drawbacks. We'll use GWT, domino-ui, domino-rest, Nalu & Spring Boot and we are happy with it. So, starting a new project, that would be the tool stack. We build business software and get paid for transforming business needs into code. With that tool stack we can create well maintainable and stable software quite fast. We have an incredible low error rate and at least nearly no downtimes.    
 
 Jens is right, GWT is in maintenance mode. After GWT was handed to the community, all work is done by a few people (like Colin, Jens, Thomas, Ahmad, etc) without getting paid. Not sure, but I think, in case more people starts sponsoring the project (https://opencollective.com/gwt-project) this might change.

Craig Mitchell schrieb am Mittwoch, 1. Oktober 2025 um 06:48:31 UTC+2:
> Now I have to build one webapp prototype and I'm wondering if my GWT-fu can still be of any use. Could someone advise what would be the best way to use GWT in 2025?

If you want create a quick and easy webapp prototype, I recommend using https://github.com/NaluKit/gwt-maven-springboot-archetype to generate a framework based off Spring Boot.

IMHO: GWT's ability to shield you from needing to write JavaScript, is as strong as it has ever been in 2025.

On Tuesday, 30 September 2025 at 9:17:26 pm UTC+10 Jens wrote:
Generally GWT SDK is in maintenance mode which means there is no incentive to add new features to GWT. Most current work is done in the compiler, emulation and distangling code dependencies to eventually use maven/gradle instead of ant.

My main pain point with GWT today is actually CSS. CSS is moving pretty fast and GWT is stuck on an old Closure Stylesheets library. Beside that if you really just want to make a throw away prototype I think I would learn a different JS framework for making such prototypes because you simply have to type less code as in GWT with Java. But of course it also depends on the complexity of the prototype as well.


1. I remember GWT was in the process of splitting it into many (J2CL-compatible) submodules, but other than searching Maven Central, I can not find any list of them?

Many of them which are considered completed are available on github at https://github.com/orgs/gwtproject/repositories?language=&q=&sort=&type=all

Colin made a google sheet back in the days at https://docs.google.com/spreadsheets/d/1b1D9fEqRh5lZ8cqMJtYoc_25rfTRvsuJkTtS2vjgi3o/edit?gid=0#gid=0 but it might be outdated. I lost track about the status of not yet completed projects.


 
2. Is there any better way of integrating recent JavaScript libraries other than manually writing my own Elemental2 wrappers? I know Elemental2 bindings are auto-generated from Closure, so I'm hoping that there may be some tools that could generate them at least from TypeScript as well. Not that there were not efforts [5]. My prototype would have to work with maps and although I see that gwt-ol [6] is still maintained, I'm wondering what would be my options if I have to integrate with, for example, Windy API?

Personally I just write JsInterop by hand because most of the time you don't need 100% of the API of a third party JS library. Generated code can also be a bit clunky as seen in elemental2 . Beside the generator you mentioned I don't know any other TS -> JsInterop generator. The one of Google is Closure externs -> JsInterop. 

 
 
3. J2CL seems to remain Google's internal toy, right?

Well you can use it but personally I think you are right, it won't be very popular outside google. 


-- J.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/4f4f532b-ba04-4bd2-bf4a-b7480cd86bf9n%40googlegroups.com.

Wednesday, October 15, 2025

Re: Code Server fixed for Windows Users (now shuts down correctly)

Forgot to say, the reason for starting everything via a maven launcher, is so IntelliJ knows it's running, and the "Stop All" button works.

If you run things as an external tool, or shell script, IntelliJ doesn't know how to stop it.

On Thursday, 16 October 2025 at 11:16:07 am UTC+11 Craig Mitchell wrote:
Thomas fixed the code server for Windows users: https://github.com/tbroyer/gwt-maven-plugin/issues/110#issuecomment-3405235827

Thanks Thomas!

Thought I'd clean up my IntelliJ dev startup.  What I figured out is:
  1. Create a maven launcher for the codeserver.
  2. Create a maven launcher for your server.
  3. And you can create maven launches for thinks like your DB.
  4. Then create a compound launcher to start everything with one click.  IntelliJ also gives you a "Stop All" button to stop everything with one click.
Much easier!

To create a maven launcher for your DB, you use "exec-maven-plugin".  For example, I'm using Google App Engine, so I added this to my pom.xml:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>${exec-maven-plugin.version}</version>
  <executions>
    <execution>
      <id>start-datastore-emulator</id>
      <goals>
        <goal>exec</goal>
      </goals>
      <configuration>
        <executable>gcloud</executable>
        <arguments>
           <argument>beta</argument>
            <argument>emulators</argument>
            <argument>datastore</argument>
            <argument>start</argument>
            <argument>--use-firestore-in-datastore-mode</argument>
            <argument>--data-dir=local_db</argument>
          </arguments>
       </configuration>
     </execution>
  </executions>
</plugin>

Now I just create a maven launcher in IntelliJ "exec:exec@start-datastore-emulator" and it'll start my local DB.

If anyone has any tips for improving it, please let me know.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/764190b2-05e9-4617-93e2-2f41e41eea11n%40googlegroups.com.

Code Server fixed for Windows Users (now shuts down correctly)

Thomas fixed the code server for Windows users: https://github.com/tbroyer/gwt-maven-plugin/issues/110#issuecomment-3405235827

Thanks Thomas!

Thought I'd clean up my IntelliJ dev startup.  What I figured out is:
  1. Create a maven launcher for the codeserver.
  2. Create a maven launcher for your server.
  3. And you can create maven launches for thinks like your DB.
  4. Then create a compound launcher to start everything with one click.  IntelliJ also gives you a "Stop All" button to stop everything with one click.
Much easier!

To create a maven launcher for your DB, you use "exec-maven-plugin".  For example, I'm using Google App Engine, so I added this to my pom.xml:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>${exec-maven-plugin.version}</version>
  <executions>
    <execution>
      <id>start-datastore-emulator</id>
      <goals>
        <goal>exec</goal>
      </goals>
      <configuration>
        <executable>gcloud</executable>
        <arguments>
           <argument>beta</argument>
            <argument>emulators</argument>
            <argument>datastore</argument>
            <argument>start</argument>
            <argument>--use-firestore-in-datastore-mode</argument>
            <argument>--data-dir=local_db</argument>
          </arguments>
       </configuration>
     </execution>
  </executions>
</plugin>

Now I just create a maven launcher in IntelliJ "exec:exec@start-datastore-emulator" and it'll start my local DB.

If anyone has any tips for improving it, please let me know.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/ccc8f52e-df5f-4527-b729-ed157f21715en%40googlegroups.com.

Re: State of GWT?

Also to get around the GWT CSS weakness, I just inject a TextResource instead of using CssResource. 

On Wednesday, October 15, 2025 at 7:12:58 PM UTC-5 cbruno...@gmail.com wrote:
I second the comment about GWT and CSS. Its its only weakness. Otherwise its really the only real alternative if you dislike the npm universe and want static typing and build system. 

I use GWT and Spring Boot and make use of MVP and GWT-RPC (using gwt-servlet-jakarta). 

On Saturday, October 4, 2025 at 3:50:10 AM UTC-5 RobW wrote:
Very much our experience. We build commercial apps, and having used GWT for years we know it inside out, so we can build things fast. Yes, it's in maintenance mode, but that also means it's very stable and throws us zero curve balls. We've looked at other frameworks, but all seem to end up with way more code for similar sized solutions - and we're not JS experts, so working in a single Java codebase is way way more comfortable for us. We do divert into JSNI at times to wire in some libs (codemirror, gridstack etc). But we create minimal bindings for just the API calls we need.

On Friday, 3 October 2025 at 10:37:49 UTC+1 Frank Hossfeld wrote:
A few years ago, i was thinking about moving to React or vue. So I started some pocs to see how thinks work. At the end npm has loaded some malicious code on my computer. Spooky. That's is one of many reasons to stay with GWT. Next, I am familiar with GWT. I know the pitfalls and drawbacks. We'll use GWT, domino-ui, domino-rest, Nalu & Spring Boot and we are happy with it. So, starting a new project, that would be the tool stack. We build business software and get paid for transforming business needs into code. With that tool stack we can create well maintainable and stable software quite fast. We have an incredible low error rate and at least nearly no downtimes.    
 
 Jens is right, GWT is in maintenance mode. After GWT was handed to the community, all work is done by a few people (like Colin, Jens, Thomas, Ahmad, etc) without getting paid. Not sure, but I think, in case more people starts sponsoring the project (https://opencollective.com/gwt-project) this might change.

Craig Mitchell schrieb am Mittwoch, 1. Oktober 2025 um 06:48:31 UTC+2:
> Now I have to build one webapp prototype and I'm wondering if my GWT-fu can still be of any use. Could someone advise what would be the best way to use GWT in 2025?

If you want create a quick and easy webapp prototype, I recommend using https://github.com/NaluKit/gwt-maven-springboot-archetype to generate a framework based off Spring Boot.

IMHO: GWT's ability to shield you from needing to write JavaScript, is as strong as it has ever been in 2025.

On Tuesday, 30 September 2025 at 9:17:26 pm UTC+10 Jens wrote:
Generally GWT SDK is in maintenance mode which means there is no incentive to add new features to GWT. Most current work is done in the compiler, emulation and distangling code dependencies to eventually use maven/gradle instead of ant.

My main pain point with GWT today is actually CSS. CSS is moving pretty fast and GWT is stuck on an old Closure Stylesheets library. Beside that if you really just want to make a throw away prototype I think I would learn a different JS framework for making such prototypes because you simply have to type less code as in GWT with Java. But of course it also depends on the complexity of the prototype as well.


1. I remember GWT was in the process of splitting it into many (J2CL-compatible) submodules, but other than searching Maven Central, I can not find any list of them?

Many of them which are considered completed are available on github at https://github.com/orgs/gwtproject/repositories?language=&q=&sort=&type=all

Colin made a google sheet back in the days at https://docs.google.com/spreadsheets/d/1b1D9fEqRh5lZ8cqMJtYoc_25rfTRvsuJkTtS2vjgi3o/edit?gid=0#gid=0 but it might be outdated. I lost track about the status of not yet completed projects.


 
2. Is there any better way of integrating recent JavaScript libraries other than manually writing my own Elemental2 wrappers? I know Elemental2 bindings are auto-generated from Closure, so I'm hoping that there may be some tools that could generate them at least from TypeScript as well. Not that there were not efforts [5]. My prototype would have to work with maps and although I see that gwt-ol [6] is still maintained, I'm wondering what would be my options if I have to integrate with, for example, Windy API?

Personally I just write JsInterop by hand because most of the time you don't need 100% of the API of a third party JS library. Generated code can also be a bit clunky as seen in elemental2 . Beside the generator you mentioned I don't know any other TS -> JsInterop generator. The one of Google is Closure externs -> JsInterop. 

 
 
3. J2CL seems to remain Google's internal toy, right?

Well you can use it but personally I think you are right, it won't be very popular outside google. 


-- J.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/c05b0a80-43d0-4a3a-baec-04d762e1ecb3n%40googlegroups.com.

Re: State of GWT?

I second the comment about GWT and CSS. Its its only weakness. Otherwise its really the only real alternative if you dislike the npm universe and want static typing and build system. 

I use GWT and Spring Boot and make use of MVP and GWT-RPC (using gwt-servlet-jakarta). 

On Saturday, October 4, 2025 at 3:50:10 AM UTC-5 RobW wrote:
Very much our experience. We build commercial apps, and having used GWT for years we know it inside out, so we can build things fast. Yes, it's in maintenance mode, but that also means it's very stable and throws us zero curve balls. We've looked at other frameworks, but all seem to end up with way more code for similar sized solutions - and we're not JS experts, so working in a single Java codebase is way way more comfortable for us. We do divert into JSNI at times to wire in some libs (codemirror, gridstack etc). But we create minimal bindings for just the API calls we need.

On Friday, 3 October 2025 at 10:37:49 UTC+1 Frank Hossfeld wrote:
A few years ago, i was thinking about moving to React or vue. So I started some pocs to see how thinks work. At the end npm has loaded some malicious code on my computer. Spooky. That's is one of many reasons to stay with GWT. Next, I am familiar with GWT. I know the pitfalls and drawbacks. We'll use GWT, domino-ui, domino-rest, Nalu & Spring Boot and we are happy with it. So, starting a new project, that would be the tool stack. We build business software and get paid for transforming business needs into code. With that tool stack we can create well maintainable and stable software quite fast. We have an incredible low error rate and at least nearly no downtimes.    
 
 Jens is right, GWT is in maintenance mode. After GWT was handed to the community, all work is done by a few people (like Colin, Jens, Thomas, Ahmad, etc) without getting paid. Not sure, but I think, in case more people starts sponsoring the project (https://opencollective.com/gwt-project) this might change.

Craig Mitchell schrieb am Mittwoch, 1. Oktober 2025 um 06:48:31 UTC+2:
> Now I have to build one webapp prototype and I'm wondering if my GWT-fu can still be of any use. Could someone advise what would be the best way to use GWT in 2025?

If you want create a quick and easy webapp prototype, I recommend using https://github.com/NaluKit/gwt-maven-springboot-archetype to generate a framework based off Spring Boot.

IMHO: GWT's ability to shield you from needing to write JavaScript, is as strong as it has ever been in 2025.

On Tuesday, 30 September 2025 at 9:17:26 pm UTC+10 Jens wrote:
Generally GWT SDK is in maintenance mode which means there is no incentive to add new features to GWT. Most current work is done in the compiler, emulation and distangling code dependencies to eventually use maven/gradle instead of ant.

My main pain point with GWT today is actually CSS. CSS is moving pretty fast and GWT is stuck on an old Closure Stylesheets library. Beside that if you really just want to make a throw away prototype I think I would learn a different JS framework for making such prototypes because you simply have to type less code as in GWT with Java. But of course it also depends on the complexity of the prototype as well.


1. I remember GWT was in the process of splitting it into many (J2CL-compatible) submodules, but other than searching Maven Central, I can not find any list of them?

Many of them which are considered completed are available on github at https://github.com/orgs/gwtproject/repositories?language=&q=&sort=&type=all

Colin made a google sheet back in the days at https://docs.google.com/spreadsheets/d/1b1D9fEqRh5lZ8cqMJtYoc_25rfTRvsuJkTtS2vjgi3o/edit?gid=0#gid=0 but it might be outdated. I lost track about the status of not yet completed projects.


 
2. Is there any better way of integrating recent JavaScript libraries other than manually writing my own Elemental2 wrappers? I know Elemental2 bindings are auto-generated from Closure, so I'm hoping that there may be some tools that could generate them at least from TypeScript as well. Not that there were not efforts [5]. My prototype would have to work with maps and although I see that gwt-ol [6] is still maintained, I'm wondering what would be my options if I have to integrate with, for example, Windy API?

Personally I just write JsInterop by hand because most of the time you don't need 100% of the API of a third party JS library. Generated code can also be a bit clunky as seen in elemental2 . Beside the generator you mentioned I don't know any other TS -> JsInterop generator. The one of Google is Closure externs -> JsInterop. 

 
 
3. J2CL seems to remain Google's internal toy, right?

Well you can use it but personally I think you are right, it won't be very popular outside google. 


-- J.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/5e97f0df-3116-499b-810f-25a61e34ebafn%40googlegroups.com.

Sunday, October 12, 2025

Re: Which AI do people use for GWT, and how do you use it?

Windsurf is incredible!  Their SWE-1 model didn't perform very well in my experience, but when switching to a different model, wow!  Just tell it the bug, and it figures out the solution, and updates the code for you.  Very impressed.  Thanks for recommending it!

On Sunday, 12 October 2025 at 5:46:54 pm UTC+11 David Nouls wrote:
I'm using the IntelliJ windsurf plugin, with the Claude LLM. It is pretty amazing at what it already can do.
On Oct 8, 2025 at 06:30 +0200, Craig Mitchell <ma...@craig-mitchell.com>, wrote:
What I've been doing is:
  1. Asking ChatGPT when designing, just using it from the browser.
  2. Using GitHub Copilot via the IntelliJ plugin when coding.
And I just saw, when the free allocation of copilot responses runs out, you can just go to its chat tab, and tell it to use a different AI:

<Screenshot 2025-10-08 152738.png>

But maybe there are better AI's or ways to use them?

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/0dfe5d96-f072-4a7b-8336-4dfe401429f3n%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/65b1106c-eff4-4431-909c-e2fa3fe9c37dn%40googlegroups.com.

Saturday, October 11, 2025

Re: Which AI do people use for GWT, and how do you use it?

I'm using the IntelliJ windsurf plugin, with the Claude LLM. It is pretty amazing at what it already can do.
On Oct 8, 2025 at 06:30 +0200, Craig Mitchell <mail@craig-mitchell.com>, wrote:
What I've been doing is:
  1. Asking ChatGPT when designing, just using it from the browser.
  2. Using GitHub Copilot via the IntelliJ plugin when coding.
And I just saw, when the free allocation of copilot responses runs out, you can just go to its chat tab, and tell it to use a different AI:

<Screenshot 2025-10-08 152738.png>

But maybe there are better AI's or ways to use them?

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/0dfe5d96-f072-4a7b-8336-4dfe401429f3n%40googlegroups.com.