reagent-project/reagent

A minimalistic ClojureScript interface to React.js

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 18 minutes ago
Type:Library / SDKCategory(s):Frontend FrameworksWeb Development
Added to GitGenius on September 14th, 2026
Created on December 18th, 2013
Open Issues & Pull Requests: 27 (+0)
GitHub issues: Enabled
Number of forks: 413
Total Stargazers: 4,888 (+0)
Total Subscribers: 107 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 2.2 days
Mean response time: 142.2 days
90th percentile: 475.7 days
Tracked items: 54

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 12
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,172 days
Stale 30+ days: 12
Stale 90+ days: 12

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (19)
  • documentation (14)
  • controlled-inputs (6)
  • blocked (4)
  • WIP (1)
  • proposal (1)
  • wontfix (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Reagent is a ClojureScript interface to React that lets developers write React components using plain ClojureScript functions.

Reagent solves the problem of bridging ClojureScript and React by providing a functional, Lisp-friendly abstraction over React's component model. Instead of JSX, it uses Hiccup-like markup—a ClojureScript data structure syntax for describing UI. Components are written as simple functions that return markup, and state is managed through Reagent's atom implementation. When an atom is dereferenced within a component, that component automatically re-renders when the atom's value changes. For more complex lifecycle needs, developers can use React's lifecycle callbacks or attach metadata to component functions, but the common case requires no explicit lifecycle management.

Reagent suits teams already committed to ClojureScript who want to leverage functional programming patterns in their frontend code. It works with React and other renderers, and can use React from npm or older cljsjs packages. The tool's performance characteristics benefit from ClojureScript's immutability semantics, allowing aggressive use of React's shouldComponentUpdate optimization to skip unnecessary renders. Developers should expect to learn Hiccup syntax and Reagent's atom model, but the learning curve is shallow for those familiar with ClojureScript.

The project maintains active documentation with tutorials, API references, and a news section. Community discussion happens in dedicated Slack channels. The codebase includes examples demonstrating common patterns and use cases. Development activity shows ongoing maintenance and updates to keep pace with React versions, including support for recent React releases while maintaining compatibility with older versions where needed.