Coming Soon — View Our Roadmap

Build Real-Time Java Web Apps with Ease

For over 10 years, Oorian has powered iGradePlus—a commercial SaaS with 500k+ lines of code. Pure Java development with flexible communication (AJAX, SSE, or WebSocket per page) and best-of-breed UI libraries. No vendor lock-in, no proprietary components.

Oorian Dashboard Example
10+
Years in Production
iGradePlus
Commercial SaaS Built
58
Extensions
Zero
Lines of JavaScript

Why Choose This Java UI Framework

A unique approach to pure Java web development that gives you flexibility without sacrificing productivity.

Wrap Best-of-Breed Libraries

Use Webix, SyncFusion, WebAwesome, or ECharts. Get enterprise-grade UI components maintained by specialists—not reinvented wheels.

Learn more

JDK-Style Event Model

Handle browser events with familiar listener patterns—just like Swing or JavaFX. Every extension uses consistent conventions for configuration and data binding.

Learn more

Flexible Communication

Choose AJAX, AJAX + SSE, or WebSocket per page. Simple request-response when that's enough, server push when you need it, full real-time when you want it.

Learn more

Pure Java Development

Write your entire application in Java—UI included. Leverage inheritance and polymorphism to build reusable controls. Type-safe, debuggable, OOP throughout.

Learn more

No Vendor Lock-In

Unlike Vaadin or ZK, you're not locked into proprietary components. Switch UI libraries or mix them as your needs evolve.

Learn more

Lightweight Architecture

Simple JSON messaging across all communication modes. No heavy client-side framework, no complex build tools. Just clean, understandable communication.

Learn more

Production Proven

Not a prototype—Oorian powers iGradePlus, a 500k+ line commercial SaaS with hundreds of pages, in production for 10+ years.

Learn more

Built-in Security

CSRF protection, auto-escaping output, secure cookies, rate limiting, and security headers. OWASP-aligned protections enabled by default.

Learn more

Built-in JSON & XML

Native support for JSON and XML parsing, generation, and manipulation. No external libraries needed for common data formats.

Learn more

Server-Side Worker Threads

Run background tasks on the server with automatic UI updates when complete. Long-running operations never block the user interface.

Learn more

HTML Template Support

Integrate traditional HTML templates when needed via HtmlTemplatePage. Mix programmatic and template-based approaches as your project requires.

Learn more

Full URL Parameter Support

Complete support for query parameters, path variables, and URL routing. Build RESTful applications with clean, bookmarkable URLs.

Learn more

Built-in Accessibility

WCAG compliance made easy with type-safe ARIA attributes, skip links, focus management, and live regions. Build inclusive applications from the start.

Learn more

Standalone HTML Generation

Use Oorian as a library to generate HTML for emails, newsletters, and reports. No web server required—just clean, programmatic HTML generation.

Learn more

Elegantly Simple

Build interactive pages with intuitive, type-safe Java code. Here's a complete Oorian page:

java
@Page("/dashboard")
public class DashboardPage extends HtmlPage implements MouseClickListener {

    @Override
    protected void createBody(Body body) {
        // Create a container with flexbox layout
        Div container = new Div();
        container.setDisplay(Display.FLEX);
        container.setFlexDirection(FlexDirection.COLUMN);
        container.setPadding("20px");

        // Add a heading
        container.addElement(new H1("Welcome to Dashboard"));

        // Create an interactive button
        Button refreshBtn = new Button("Refresh Data");
        refreshBtn.registerListener(this, MouseClickedEvent.class);
        container.addElement(refreshBtn);

        // Add a SyncFusion data grid
        SfDataGrid grid = new SfDataGrid();
        grid.setDataSource(getCustomerData());
        container.addElement(grid);

        body.addElement(container);
    }

    @Override
    public void onEvent(MouseClickedEvent event) {
        // Handle click - UI updates automatically
        refreshData();
    }
}
Type-safe HTML construction
Elements are Java objects with proper IDE support
Automatic event handling
Register listeners and handle events in Java
Flexible sync options
Choose AJAX, SSE, or WebSocket per page

Your Choice of UI Libraries

Oorian integrates with industry-leading JavaScript UI libraries through lightweight Java extensions. Use what fits your needs—or mix and match.

Consistent Conventions, Familiar Feel

Every extension follows the same Oorian conventions for instantiation, configuration, events, and data binding. Each library keeps its unique features, but the experience of using any extension feels immediately familiar. No need to learn different paradigms for each library—just the Oorian way.

Tier 1

Full UI Platforms

Complete component suites with layouts, grids, and app-level UI

Tier 2

Web-Component UI Libraries

Framework-agnostic building blocks

Tier 3

Specialized Components

Best-in-class single-purpose widgets

Editors

Grids & Tables

Charts & Visualization

Scheduling & Timeline

Diagrams

Document Viewing

Icons

Maps

Date Pickers

File Upload

Notifications

Image Tools

Carousel

Media Players

Tour & Onboarding

Java Web Framework Comparison

Looking for a Vaadin alternative or ZK alternative? See how Oorian compares to other Java UI frameworks.

FrameworkApproachComponentsFlexibility
VaadinServer-side JavaProprietaryLocked-in
ZK FrameworkServer-centricProprietaryLimited
Apache WicketTemplate-basedHTML + JavaModerate
OorianAJAX / SSE / WebSocketYour choiceMaximum

Oorian is Coming Soon

Stay tuned for the official release. Free for non-commercial use.