A client-side web framework for ClojureScript that generates DOM from EDN data, eliminating direct DOM manipulation.
WebFUI is a client-side web framework for ClojureScript that generates the DOM automatically from EDN data stored in a Clojure atom. It eliminates the need for direct DOM manipulation by synchronizing the DOM and application state in real-time, allowing developers to write functional-style code. The framework simplifies web development by treating the UI as a pure function of state.
ClojureScript developers building interactive web applications who want to avoid direct DOM manipulation and leverage functional programming paradigms. It's ideal for those who prefer a data-driven approach to UI development.
Developers choose WebFUI for its simplicity and conciseness, as it reduces boilerplate code by automating DOM updates and state synchronization. Its functional design and EDN-based state make debugging and unit testing straightforward, while the plugin architecture allows for extensible user interactions.
Client-Side Web Framework for ClojureScript
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Generates and updates the DOM in real-time from EDN data in a Clojure atom, eliminating manual DOM manipulation, as shown in the simple add-two-numbers example where state changes auto-reflect in the UI.
All application logic is pure functions transforming EDN state, making code concise and testable; the calculator app demonstrates this with only 92 lines of code.
Uses ClojureScript's persistent data structures and delta calculations to minimize DOM updates, mitigating performance issues from wholesale synchronization, as mentioned in the performance challenges section.
Supports plugins for adding user interactions like mouse actions, allowing extensible functionality without core changes, as detailed in the linked documentation.
Only supports Webkit browsers in its alpha stage, restricting deployment for projects requiring Firefox or Edge compatibility, as admitted in the README's note.
The two-way synchronization model can cause delays on slower devices like older iPads, with the README warning about JavaScript performance issues in real-world apps.
As an alpha project, it may have incomplete features, bugs, or breaking changes, making it risky for production without thorough testing and limiting long-term support.