Om is a frontend state management library and reactive user interface framework that integrates ClojureScript functional programming with the React virtual DOM rendering engine. It provides a bridge to build responsive web interfaces where visual elements automatically update when underlying application data changes.
The project centers on a normalized state store that flattens complex data structures into a relational format. This data is accessed through a reader-based querying system, which decouples the user interface from the state by allowing components to declare specific data requirements that are resolved through a centralized read function.
State is managed via atomic mutations and transactions, ensuring that global application state transitions trigger targeted re-renders of dependent components. The framework also covers client-server data synchronization, identity-based data resolution, and the ability to render components to strings for server-side content delivery.