HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
omcljs
om
Clojure2013–2026
omcljs / om

om

ClojureScript interface to Facebook's React

61Distinct people
67Mentions
0Explicit recommenders
6.6KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

ClojureScript interface to Facebook's React

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 8:01:28 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year67 dated mentions

Observed mentions: 2013-12-22 19:43:54 UTC to 2026-02-25 19:11:18 UTC.

01020302013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20132014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 31 mentions; 1 submissions, 30 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 18 mentions; 5 submissions, 13 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC110
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC31130
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC18513
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC707
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC404
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC303
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Om NOTE: This project is no longer under active development. If you'd like to use a library that's well maintained that was inspired by some of the ideas presented here see Fulcro A ClojureScript UI framework and client/server architecture over Facebook's React. Om UIs are out of the box snapshotable and undoable and these operations have no implementation complexity and little overhead. Om borrows ideas liberally from Facebook's Relay and Netflix's Falcor with a dash of inspiration from Datomic pull syntax to avoid the typical incidental complexity that arises from client/server state management. Dependency Information Latest release: 1.0.0-beta1 Leiningen and Boot dependency information: [org.omcljs/om "1.0.0-beta1"] Maven dependency information: <dependency> <groupId>org.omcljs</groupId> <artifactId>om</artifactId> <version>1.0.0-beta1</version> </dependency> Example (ns example (:require [goog.dom :as gdom] [om.dom :as dom] [om.next :as om :refer [defui]])) (defui Hello Object (render [this] (dom/h1 nil "Hello, world!"))) (def hello (om/factory Hello)) (.render js/ReactDOM (hello) (gdom/getElement "example")) Tutorials There is an Quick Start tutorial that will introduce you to the core concepts of Om here. There are also a variety of other guides here. Documentation There is documentation here Contributing Please contact me via email to request an electronic Contributor Agreement. Once your electronic CA has been signed and returned to me I will accept pull requests. Community If you are looking for help please get in touch either on the clojurians.slack.com #om channel or the om-cljs Google Group. References Worlds: Controlling the Scope of Side Effects A Functional I/O System Directness and Liveness in the Morphic User Interface Construction Environment Learnable Programming Relay Falcor GraphQL Datomic pull syntax Copyright and license Copyright © 2013-2017 David Nolen Licensed under the EPL (see the file epl.html).
Read the full README on GitHub

What Hacker News says

31 sources
I'm a huge fan of ReactJS, however it isn't a perfect or optimal implementation of it's concepts. Having a purely functional frontend, with immutability is key. ReactJS is leaky in it's mix of imperative and declarative code. FluxJS also suffers from this same issue. ReactJS is the gateway drug to frontend nirvana. For more info: http://computationallyendowed.com/blog/2014/07/20/reactive-m... (MVC in a Reactive World) http://elm-lang.org (ELM Language) https://github.com/swannodette/om (Om/Clojurescript) These will be _the_ technologies and approaches in 2015. ReactJS/FluxJS are great, but imperfect implementations!
In No more JavaScript frameworks
I'm actually not aware of any advancements being made in JS that haven't already been made on other platforms. For example, the JVM is much more performant than Node, has more libraries, better build tools, better development environments and so on. I also think that other languages are more flexible and productive. JavaScript is a very crufty language with a lot of gotchas and odd behaviors. Dealing with these wastes developer time and makes large projects harder to maintain. I'd much rather work with a language like ClojureScript and have the benefit of using the same language on the client and the server, while using a well thought out language. Writing apps in ClojureScript is far more pleasant than with JavaScript. There are also fantastic libraries available such as Reagent (http://holmsand.github.io/reagent/) and Om (https://github
Read the rest
In Ask HN: Why learn non-JS languages/framework?
I agree. I've had a few troubles with Om, and while dnolen and the community have been super helpful on IRC and lists, there are some basic things that I personally felt trapped by. - The inability to cleanly have om components co-exist with a static template, rather than having to render the entire thing using sablono or om/goog is one. The rationale is that multiple roots aren't good for you, but the alternative is to render your entire template within clojurescript code which can be a pain if you're working with someone who thinks in html/css. - The API for IResolve is currently in super early alpha, and while there are some examples [1], one of the the recommended solutions [2] is to use NativeStore or Derive, which seems overkill for simpler use cases such as mine. (It isn't my intention to be overtly critical of a great library - I
Read the rest
like it a lot. I've used it to some extent and faced a bunch of issues, which I hope will get resolved over time as the APIs and design become more stable.) [1] https://github.com/swannodette/om/blob/master/examples/two_l... [2] https://groups.google.com/forum/#!topic/clojurescript/WCz57-...
In Om No! Trouble in paradise with ClojureScript and React.js

Showing the 15 most recent of 31 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.