Build ambitious interfaces.
Reactor allows you to build increadibly ambitious UI software in a fast, scalable and highly declarative way. Much like its name, the more you throw at Reactor, the more powerful it gets.
Reactor is an application framework designed for web software that behaves more like an IDE or desktop application rather than a collection of routed pages. It powers large development and administration systems, but also works well for focused tools such as data browsers.
Instead of independently assembling routing, commands, panels, persistence, settings, search, keyboard behavior, and mobile adaptations, a Reactor application installs modules into a shared runtime.
Think of Reactor as an application operating system. Modules add features, stores provide state and services, and Reactor supplies the common UI.
What you get
The main building blocks
Reactor is more than a component catalog. Its main building blocks are:
- Modules install application behavior during a defined boot lifecycle.
- Stores own observable state, services, asynchronous readiness, and persistence.
- Actions keep an operation, its validation, parameters, and progress together.
- Entity definitions tell Reactor how to display, find, open, and save references to your objects.
- Controls and forms project behavior and values into consistent interactions.
- Workspaces and panels separate a feature's renderable state from application layout policy.
- Runtime services provide dialogs, notifications, shortcuts, guides, media, and responsive behavior.
These pieces work together. A command can ask an entity definition to find a todo, validate it, open a panel in the current workspace, and show progress in the Visor.
Put the operation in an action and the display rules in an entity definition. Reactor can then reuse them across the application.
Choose your path
- New to the repository? Follow Local development, then explore the sandbox.
- Using an application built with Reactor? Start with Getting around a Reactor application.
- Ready to build? Build your first module.
- Evaluating the architecture? Read How Reactor fits together.
- Looking for a feature? Use the Manual sidebar or start with Application model.
- Need an exact signature? Use the generated API reference after reading the relevant manual page.
Living reference applications
This repository contains two main examples:
demo/module-todosis a small domain module with actions, entity definitions, nested entities, search, panels, workspace groups, persistence, dialogs, and Visor metadata.demo/module-playgroundis an interactive catalog of controls, forms, cards, surfaces, trees, tables, dialogs, overlays, drag-and-drop, and guided workflows.
The manual uses those examples as its source of truth. Product-specific policy belongs in product modules and case studies, not in Reactor's core explanations.
Reactor has many abstractions because it is built for applications with lots of state and connected features. A small routed website may not need it.