Java is all you need.
webforJ is the full-stack Java framework for business web apps: you build the whole app in Java, screens included, with no JavaScript and no REST layer to maintain. It works with any backend, standalone or with Spring Boot, it's AI-ready, and your Swing apps come along.
A Java web framework and a Java UI framework in one: components, routing, forms with binding and validation, tables, security, translation and tests. Your views are Java classes, and your Spring services go straight into them. Data comes from Spring Data, JPA or any source through a repository.
@Route("/orders")
public class OrdersView extends Composite<FlexLayout> {
private final FlexLayout self = getBoundComponent();
private final Table<Order> table = new Table<>();
public OrdersView(OrderService orders) {
table.addColumn("Order", Order::number);
table.addColumn("Customer", Order::customer);
table.addColumn("Total", Order::total);
table.setItems(orders.findOpen());
Button refresh = new Button("Refresh", ButtonTheme.PRIMARY,
e -> table.setItems(orders.findOpen()));
self.setDirection(FlexDirection.COLUMN).add(refresh, table);
}
}Generate a project in the browser with startforJ.
One install of the webforJ AI plugin teaches Claude Code, GitHub Copilot, Cursor, Gemini CLI and Codex the real API.
claude plugin marketplace add webforj/webforj-ai
claude plugin install webforj@webforj-ai- MCP server and Agent Skills: answers from current docs for your version, and step-by-step workflows for forms, components, styling, security, async work, localization and upgrades.
- Browserless testing: views run in plain JUnit tests, so your assistant gets a pass or a fail after every change.
- Agents that use your app: an agent reads the page, finds components and clicks like a user, with exactly the user's permissions. MCP Apps open a webforJ view inside an AI conversation.
String page = Snapshot.render(view);
var export = ComponentLocator.of(Button.class).byText("Export").locate();
UserInteraction.click(export);craftforJ edits your running app in the browser. Click a component, change it, and write the edits you keep back into your Java source. The craftforJ assistant takes a goal, writes Java, compiles and checks it, and nothing reaches your source without your approval.
Run your Swing, JavaFX or SWT app in the browser with Webswing, then move it to webforJ one screen at a time while old and new screens talk to each other. Read the Swing to web migration guide. Backed by BASIS International's almost 40 years of modernizing mission-critical systems, including 20+ years of delivering technology built on Java.
Every component comes from one design system with themes, light and dark modes and design tokens, plus the DWC Design Kit for Figma for your designers.
Ask a question, report a bug or plan a project. We speak English, German, French and Spanish. To contribute code, read the contributing guide.
webforJ is open source under the MIT License.
Do it all in Java.
