Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ClojureScript
  3. reforms

reforms

EPL-1.0Clojure

A ClojureScript library for building beautiful, data-bound forms with Bootstrap 3 styling for Om, Reagent, and Rum.

GitHubGitHub
168 stars7 forks0 contributors

What is reforms?

Reforms is a ClojureScript library designed to help developers build beautiful, data-bound forms with minimal effort. It provides a set of form components that automatically bind to application state and generate Bootstrap 3-compatible markup, ensuring forms are both functional and visually consistent. The library supports Om, Reagent, and Rum, allowing code to be portable across these frameworks.

Target Audience

ClojureScript developers using Om, Reagent, or Rum who need to create forms quickly with a consistent Bootstrap 3 style and built-in data binding.

Value Proposition

Developers choose Reforms for its cross-framework compatibility, which simplifies code reuse and migration, and for its out-of-the-box Bootstrap 3 styling that eliminates the need for custom CSS. Its declarative API and built-in validation make form development faster and more maintainable.

Overview

Beautiful Bootstrap 3 forms for Om, Reagent and Rum.

Use Cases

Best For

  • Building data-bound forms in ClojureScript applications
  • Creating Bootstrap 3-styled UIs without writing custom CSS
  • Developing portable form code across Om, Reagent, and Rum projects
  • Implementing client-side validation with custom rules
  • Adding interactive tables with row selection to forms
  • Rapid prototyping of forms with consistent styling

Not Ideal For

  • Projects using Bootstrap 4 or 5, as Reforms is built for Bootstrap 3 and may not support newer versions without manual overrides.
  • Teams wanting to use modern CSS-in-JS solutions like Tailwind CSS or Styled Components, since Reforms is tightly coupled with Bootstrap 3's class-based styling.
  • Applications requiring advanced form components like file uploads, rich text editors, or complex date pickers, as the library focuses on basic controls and tables.

Pros & Cons

Pros

Cross-Framework Portability

Provides a unified API for Om, Reagent, and Rum, enabling form code reuse and easy migration between frameworks, as highlighted in the README's philosophy.

Bootstrap 3 Styling Out-of-the-Box

Generates markup compatible with Bootstrap 3 CSS and Font Awesome, allowing developers to create polished, responsive forms quickly without custom CSS, as shown in the external CSS section.

Declarative Data Binding

Automatically binds form controls to application state (cursors or ratoms), keeping UI synchronized with data, demonstrated in the tutorial where text inputs update state in real-time.

Built-in Validation Support

Includes client-side validation with predefined validators and custom logic, making it easy to implement form checks without additional libraries, as detailed in the validation section.

Cons

Locked into Bootstrap 3

Reforms is designed around Bootstrap 3, an outdated version; projects using newer Bootstrap versions or other CSS frameworks will face compatibility issues and require workarounds.

External CSS Dependencies

Requires linking to Bootstrap 3 and Font Awesome CSS externally, adding dependency management overhead and limiting styling control without manual overrides, as noted in the setup instructions.

Limited Advanced Features

Lacks support for modern form needs like server-side rendering integration, real-time validation beyond client-side, or accessibility enhancements beyond Bootstrap 3's defaults, as the README focuses on basic controls.

Frequently Asked Questions

Quick Stats

Stars168
Forks7
Contributors0
Open Issues3
Last commit9 years ago
CreatedSince 2015

Tags

#clojurescript#reagent#validation#frontend#ui-library#data-binding#forms#bootstrap-3#rum

Built With

F
Font Awesome
C
ClojureScript
B
Bootstrap 3

Included in

ClojureScript1.1k
Auto-fetched 10 hours ago

Related Projects

core.asynccore.async

Facilities for async programming and communication in Clojure

Stars2,051
Forks215
Last commit2 months ago
AutomatAutomat

better automata through combinators

Stars591
Forks48
Last commit8 years ago
markdown-cljmarkdown-clj

Markdown parser in Clojure

Stars575
Forks120
Last commit10 days ago
om-toolsom-tools

Tools for building Om applications

Stars433
Forks29
Last commit8 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub