Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ClojureScript
  3. Brutha

Brutha

Clojure

A simple, unopinionated ClojureScript interface to React that lets you manage application state independently.

GitHubGitHub
139 stars2 forks0 contributors

What is Brutha?

Brutha is a lightweight ClojureScript library that provides a simple, functional interface to React, enabling developers to build user interfaces with pure functions and immutable data. It solves the problem of integrating React with ClojureScript without imposing state management patterns, allowing for greater flexibility in application architecture. Unlike other ClojureScript React wrappers, it focuses on minimalism and direct control over component updates.

Target Audience

ClojureScript developers who want a straightforward, unopinionated way to use React for building UIs, especially those who prefer managing their own application state without the overhead of libraries like Om or Reagent.

Value Proposition

Developers choose Brutha for its simplicity and flexibility—it offers a no-frills approach to React integration, avoiding complex abstractions and letting users handle state in their preferred way. Its lightweight design and support for React lifecycle hooks make it a practical choice for projects where control and minimalism are priorities.

Overview

Simple ClojureScript interface to React

Use Cases

Best For

  • ClojureScript projects needing a minimal React wrapper without state management opinions
  • Developers who want to manage application state independently of their UI library
  • Integrating React into existing ClojureScript codebases with custom state solutions
  • Building UIs with pure functional components and immutable data structures
  • Projects where debugging with React Developer Tools is important
  • Applications requiring fine-grained control over component lifecycle events

Not Ideal For

  • Projects requiring automatic state synchronization with reactive atoms or cursors, as in Om or Reagent
  • Teams wanting an all-in-one UI library with built-in DOM utilities and pre-built components
  • Applications that need real-time updates without manual intervention in state management
  • Developers seeking a large ecosystem of community plugins and extensive documentation

Pros & Cons

Pros

Full State Control

Brutha imposes no state management patterns, allowing developers to handle application state in their preferred way, as highlighted in its rationale contrasting with Om and Reagent.

Pure Functional Components

Components are pure functions taking immutable data, promoting clean, predictable UI code that aligns with ClojureScript's functional paradigms.

Lifecycle Hook Flexibility

Supports React lifecycle methods through reified types like IWillMount and IDidUpdate, enabling advanced component behavior for side effects or logging.

Debugging Integration

Allows assigning display names to components for better identification in React Developer Tools, enhancing debugging capabilities.

Cons

Manual Update Overhead

Requires explicit calls to the mount function for state updates, which can be cumbersome and error-prone in dynamic applications compared to reactive systems.

No Built-in DOM Utilities

Brutha lacks a dom namespace, forcing developers to depend on external libraries like Flupot or Sablono for DOM element creation, adding setup complexity.

Limited Ecosystem

As a minimal library, Brutha has a smaller user base and fewer resources than alternatives like Reagent, which may slow down development and troubleshooting.

Frequently Asked Questions

Quick Stats

Stars139
Forks2
Contributors0
Open Issues1
Last commit10 years ago
CreatedSince 2015

Tags

#functional-programming#clojurescript#frontend#ui-library#clojure#web-development#react#state-management

Built With

R
React
C
ClojureScript

Included in

ClojureScript1.1k
Auto-fetched 19 hours ago

Related Projects

OmOm

ClojureScript interface to Facebook's React

Stars6,630
Forks352
Last commit6 years ago
RumRum

Simple, decomplected, isomorphic HTML UI library for Clojure and ClojureScript

Stars1,824
Forks127
Last commit1 year ago
re-comre-com

A ClojureScript library of reusable components for Reagent

Stars821
Forks142
Last commit24 days ago
HelixHelix

A simple, easy to use library for React development in ClojureScript.

Stars674
Forks51
Last commit6 months 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