Framework Features

You shouldn't need five languages to build a business application.

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

Unified, Lightweight Architecture

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

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

Component-Based Architecture

Build your UI with composable Java components. Every HTML element is a first-class Java object with type-safe properties, intuitive methods, and full IDE support.

Learn more

Full HTML5 Element Support

Java classes for every HTML5 element—Div, Table, Form, Canvas, and more. Construct type-safe HTML entirely in Java with compile-time checking.

Learn more

Versatile Styling System

Apply CSS styles programmatically with fluent methods for all CSS3 properties. Use CssStyleSheet, CssRule, and CssMediaQuery to build responsive designs entirely in Java.

Learn more

Flexible Communication Options

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

Page Annotation Routing

Simple @Page("/path") annotation for route definition. Clean, declarative routing with support for path variables and wildcard patterns.

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

Form Handling & Validation

OorianForm with FormListener pattern for type-safe form processing. Built-in validation framework with annotation-based rules and error reporting.

Learn more

Drag and Drop Support

Built-in DragDropEvent and DragDropListener for intuitive drag-and-drop interactions. Configure draggable sources and drop targets entirely in Java.

Learn more

Built-in Container & Layout Components

Deck, TabPanel, SplitPanel, and other layout containers for organizing complex UIs. Build multi-view applications with built-in navigation patterns.

Learn more

170+ UI Extensions & Add-Ons*

Integrate best-of-breed JavaScript UI libraries through lightweight Java wrappers. Use Syncfusion, Webix, Chart.js, Leaflet, and more—all with consistent Oorian conventions.

Learn more

Browser API Integration

Access browser capabilities like clipboard, geolocation, notifications, and local storage from Java. Client-side operations when you need them, without writing JavaScript.

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

Data Binding, Data Providers, & Dependency Injection

Connect UI components to data sources with providers and binding. Built-in dependency injection for clean, testable application architecture.

Learn more

Session Management

OorianSession with configurable idle and absolute timeouts, secure cookie defaults, and per-page timeout overrides for sensitive operations.

Learn more

Lightweight Configuration System

Simple properties-based configuration with sensible defaults. No XML boilerplate—just set what you need and let Oorian handle the rest.

Learn more

Comprehensive Security

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

Learn more

Logging & Error Handling

Integrated logging framework with structured error handling. Centralized exception management with customizable error pages and diagnostic output.

Learn more

Application Monitoring

OorianMonitor provides health checks, performance metrics, Prometheus-compatible export, admin dashboard, and configurable alert callbacks.

Learn more

WCAG Accessibility Support

Type-safe ARIA attributes, skip links, focus management, and live regions. Build inclusive applications that meet WCAG compliance standards.

Learn more

Internationalization

Built-in support for multi-language applications with locale-aware formatting, resource bundles, and right-to-left layout support.

Learn more

Native JSON, XML & Markdown

Built-in JSON, XML, and Markdown parsing, generation, and manipulation. No external libraries needed for common data formats.

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

HTML Template Support

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

Learn more

Self-Contained Web Apps (LaunchPad)

Deploy Oorian applications as a single executable JAR with embedded Jetty server. No external application server required—just compile and run.

Learn more

Platform Independent

Write once, deploy on J2EE or Jakarta EE. OorianCommonLib has zero servlet API dependencies—thin adapters handle the rest.

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

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

*Extensions are being progressively rolled out. See the roadmap for availability.

How Oorian Works

Browser
HTML/CSS/JS Oorian Client
Communication
AJAX / SSE / WebSocket JSON Messages
Oorian Server
Java Objects Event Handlers

Your Java code creates and manipulates element objects. Oorian serializes changes as JSON and sends them via your chosen transport—AJAX, SSE, or WebSocket. The browser applies updates to the DOM. Events flow back to your server-side handlers. It's transparent, efficient, and requires no client-side coding.

UI Library Integration

Each extension follows a consistent pattern: Java objects that configure and control JavaScript components. You get enterprise-grade UI without building it yourself.

Java
// SyncFusion DataGrid example
SfDataGrid grid = new SfDataGrid();
grid.setDataSource(customers);
grid.setAllowPaging(true);
grid.setAllowSorting(true);
grid.setAllowFiltering(true);

// Add columns
grid.addColumn("name", "Customer Name");
grid.addColumn("email", "Email Address");
grid.addColumn("status", "Status");

// Handle selection
grid.registerListener(this, RowSelectedEvent.class);

container.addElement(grid);

Developer Experience

Intuitive Programming Model

If you know Java and HTML/CSS, you already know Oorian. Elements are objects, styles are methods, events are listeners — no new syntax to learn.

Full IDE Support

Autocomplete, refactoring, and navigation work perfectly. Your IDE knows every element, property, and method.

Easy Debugging

Set breakpoints in your event handlers. Step through your UI logic. No browser dev tools required.

Batteries Included

Security, communications, error handling, accessibility, and internationalization are built in — so you can focus on your application, not reinventing infrastructure.

No Build Tools Required

No webpack, npm, or complex frontend toolchain. Just compile your Java code and run. Simple as it should be.

No JavaScript Required

Write everything in Java. No context switching, no JS debugging, no hunting through browser consoles.