A Java application running inside an AI assistant, with both sharing the same application state.
The model can open a view, change it through MCP tools, and the user can interact with the same live UI.
Built with Java, Spring Boot, Spring AI, MCP Apps and webforJ.
Demo โ
Java devs restart the app for every change and call it normal. We just shipped live updates in webforJ: save a class and the running app rebuilds only the part of the screen that changed, session and state intact. CSS lands instantly.
In the clip, I integrate a React flow-agent component and control it directly from Java.
Zero configuration. Hot reload. A single server command.
What did you skip pulling into a Java app because of that second frontend process?
webforJ never needed a bundler.
Standard web components, pure CSS, handed straight to the browser.
That was a strength, until you wanted React, Vue, or Tailwind.
Now one annotation pulls any of it into a Java app. Here's a React component driven from Java:
#Java
webforJ ships a first class bundler built on Bun.
Whatever you want your Java app to load is one @BundleEntry annotation away. CSS, TypeScript, Vue, React, it all just works.
๐ง Observation: JDK 25's flexible constructor bodies finally let you validate arguments before calling super(). We've been working around this limitation for 25+ years. Sometimes the boring fixes matter most.
Cursor makes the model answer "why am I doing this?" before every function call. Not in the chat. In the function definition itself.
Almost AI coding agents don't do this at all.
Why does Cursor?
https://t.co/hluXeKt9K8
#ai#llm
JDK 26 previews LazyConstant - declare the field final, defer the value. The JVM treats it as a true constant via @Stable, so you get constant folding without eager init.
https://t.co/qiT2QWovJv
#Java
You asked, we implemented! ๐
Weโre happy to announce that you can now debug remote apps with Spring Debugger!
It currently uses JDWP and supports Tomcat, Jetty, and Undertow. ๐ ๏ธ
Read more ๐ https://t.co/bRB0EOQbJQ
๐คSpring AI now supports native structured output.
One line of config and your JSON responses are guaranteed to match your schema. No more hoping the LLM follows your formatting instructions.
https://t.co/8E3H7S2w22