K
Kemin Labs
keminglabs.com · Company blog · on HN since 2011
Keming Labs is a small studio writing about data visualization, ClojureScript, and building fast desktop apps such as the Finda launcher.
What HN saysHN mentions it mainly for Finda, a fast file search tool for macOS, and as an example of an Electron app with a Rust core.
38HN people shared it
27linked it in comments
17stories submitted
484story points
1 year agolast shared
2011people per year2026
Most-shared posts
- 1Building a fast Electron app with Rust8 people · 248 points · first shared 2018 · 200 comments on HN
- 2C2: Clojure(Script) data visualization7 people · 109 points · first shared 2012 · 21 comments on HN
- 3Finda: Sub-16ms fuzzy match for windows, tabs, buffers, browser history, etc6 people · 7 points · first shared 2018 · discussion on HN
- 4Building an iOS weather app with Angular and ClojureScript5 people · 60 points · first shared 2013 · 12 comments on HN
- 5HTML5 interactive treemap visualization2 people · 3 points · first shared 2011 · discussion on HN
- 6BoxBox: A modern design tool2 people · 3 points · first shared 2015 · discussion on HN
- 7A sampler of ClojureScript application designs2 people · 1 points · first shared 2013 · discussion on HN
- 8Homepage2 people · first shared 2011
- 9Setup2 people · first shared 2023
- 10Mosaic plots: responsive, flexbox-based parts-to-whole visualizations1 people · 25 points · first shared 2014 · 5 comments on HN
- 11Building an iOS weather app with Angular and ClojureScript1 people · 17 points · first shared 2013 · 3 comments on HN
- 12Cljs-d3: A ClojureScript façade for D31 people · 4 points · first shared 2011 · discussion on HN
- 13The technology of ClearCommit (NKO 2013)1 people · 2 points · first shared 2013 · discussion on HN
- 14Finda Websocket Architecture1 people · 2 points · first shared 2018 · discussion on HN
- 15Clojure Cup Tips1 people · 2 points · first shared 2013 · discussion on HN
What HN people wrote when they linked it
lynaghk · 2011-06-02
SEEKING WORK
Portland, Oregon or remote
Data analysis & visualization: on the web using HTML, SVG, and JavaScript, but I also like the constraints of print / PDF (via LaTeX + Illustrator). I typically use a combination of Ruby + R + SQL. My machine learning experience is in classification problems---typically some dimensionality reduction like SVD or sparse dictionary learning followed by a support vector machine. I'm waiting desperately for social media network graphs to blow over.
Kindle application development: I'm one of the handful of developers in Amazon's private SDK beta making "active content" for everyone's favorite ultra low power black and white mobile device. See http://keminglabs.com
Portfolio: http://www.dirigibleFlightcraft.com
Github: https://github.com/lynaghk/
jks · 2025-09-29
Finda <https://keminglabs.com/finda/> is the best file search I've seen for macOS. (Incidentally, it has an Electron UI.)
Doesn't seem to be updated for Tahoe yet, and even the Sequoia version isn't notarized, so it's not really clear if it has a future.
sooheon · 2021-07-27
Loved the monocle blog, as well as other posts on that site. [Finda](https://keminglabs.com/finda/) was another one I saw in this space.
feifan · 2020-05-17
Finda’s architecture[0] is great for this discussion.
On the one hand, you can say “look, an Electron app that’s actually fast!”
On the other hand, you can say “wow web apps are slow; it takes ~50x longer to render a basic list than to regex search across tens of thousands of strings”.
From a performance perspective, the JS part of the stack certainly isn’t helping.
0: https://keminglabs.com/blog/building-a-fast-electron-app-with-rust/
nazka · 2018-12-07
Discord too.
And like Discord or Finda[1] did, wherever you need some parts of your software to be really fast or to interact with the OS you can use Rust under the hood. And you have the best of both worlds. Using knowned technologies with CSS/HTML and React/Redux for fast UI/UX iterations, with “native access” and performance with Rust.
[1] https://keminglabs.com/blog/building-a-fast-electron-app-with-rust/
emitstop · 2016-05-04
This problem is the bane of my existence as a css/html guy. However I don't believe the core problem is what you suggest. Forcing designers to just work within wireframes isn't going to work. Assets and wireframes is only a small part of what a designer does when creating a good user experience.
I think the solution is going to lie somewhere inbetween, with designers needing to expand their knowledge and working within tools that are based on how CSS and HTML actually function instead of a program that allows you to just place boxes wherever you want and hope its easy to code.
I've been following what these guys are doing over at BoxBox, they are onto something big I think. https://keminglabs.com/boxbox/
bsima · 2014-12-04
Adam Bard's recent work is a good example: http://adambard.com
As is Kevin Lynagh's http://keminglabs.com - He also made Denizen (I think) https://getdenizen.com/
I have no idea if any of these are profitable, but at least you get some ideas. Searching "site:news.ycombinator.com microbusiness" also brings up some good examples, for instance: https://news.ycombinator.com/item?id=7367243
graue · 2013-08-24
Thanks; great response. I had forgotten about crossovers.
I did a little project in CLJS and found the additional power of the language nice, but not revolutionary. I've found getting into Node.js that despite the well-known warts of JavaScript, the community has done an amazing job working around those problems, building powerful abstractions, and shipping simple, un-complected code. I hardly feel like I'm compromising on expressivity.
So for me, language like "callback hell" and "wasteful" rings a bit hollow, as it doesn't reflect my experience writing JavaScript. In fact, if I were a contributor to When.js I could imagine it being pretty insulting.
Maybe we can win more people to ClojureScript by recognizing, not diminishing, the great stuff folks have made with vanilla JS, and showing how CLJS provides interop while making JavaScript programming even better. Kevin Lynagh's post here[1] is a nice example of that.
[1] http://keminglabs.com/blog/angular-cljs-weather-app/
As for my "glass is half-empty" interpretation of code-sharing, I'm thinking of how you can trivially require jQuery from a Node.js application and use it for scraping[2]. Or how you can require('http') in the browser and effortlessly make HTTP requests in browser or server with the same code[3]. I'd love to be proven wrong, but ClojureScript seems far away from this kind of stuff. You can't use Compojure or HTTP-Kit in ClojureScript. So you could say that while Clojure has a decent client/server…
nsm · 2023-06-02
This app called Finda https://keminglabs.com/finda/setup/#chrome-and-firefox-tabs has to use an extension to support this functionality. That seems like a fairly reliable way to get the list of tabs, with the downside that writing a browser extension is a lot less trivial than having a quick command line thing.
gregwebs · 2023-04-05
finda for Mac. can also switch to specific tabs in browsers and VSCode.
https://keminglabs.com/finda/setup/
bertmuthalaly · 2021-09-03
Electron can save you a lot of time but that doesn't mean your app has to be slow.
https://keminglabs.com/blog/building-a-fast-electron-app-with-rust/
fabiospampinato · 2020-06-13
What's your definition of "native" though? Sciter interprets "scripts", Electron interprets JavaScript, it'd say both will produce (to varying degrees) interpreted applications. Either of them can run code written in other languages, again with varying degrees of ease, e.g. https://keminglabs.com/blog/building-a-fast-electron-app-with-rust
Last time I checked Evernote, mentioned in the page you linked, renders notes under macOS using WebKit, why don't they use Sciter?
ajflores1604 · 2020-05-18
This writeup from a few years back caught my attention and gave me hope of near natively fast, cross platform electron apps
https://keminglabs.com/blog/building-a-fast-electron-app-with-rust/
aoeusnth1 · 2019-11-14
This is a good article on the technical reasons Finda uses electron to make a portable, yet fast & lightweight desktop search app: https://keminglabs.com/blog/building-a-fast-electron-app-with-rust/
ComNik · 2018-07-04
I think Finda (https://keminglabs.com/finda/) fills a similar need, runs offline, and indexes lots of other stuff as well. Although I think it is not possible to assign additional keywords.
(Not affiliated in any way, just a user)
mrcactu5 · 2016-03-02
I remember getting excited about functional approaches to d3, but then the excitement died down
https://keminglabs.com/c2/
https://github.com/seliopou/elm-d3
In all fairness mBostock works very hard on d3 and he is prolific at it as evidence by his bl.ocks.org pages but his library is very opinionated as well
trevmckendrick · 2015-08-16
He (they?) are working on a new "luxury" phone it appears. More info here: https://keminglabs.com/phone
pselbert · 2014-08-27
I could have sworn there was a ClojureScript wrapper for D3 that was also called C3.
Taking a quick search shows that it is actually called C2[1], from Keming Labs.
[1]: http://keminglabs.com/c2/
fdb · 2014-03-19
This is written by Kevin Lynagh, known for his work on C2 (Like D3 in Clojure - http://keminglabs.com/c2/) and "A grammar for statistical graphics" (http://vimeo.com/53214578).
juliangamble · 2014-03-14
An approach to getting Clojure on Mobile has been the approach that Weathertron used.
https://itunes.apple.com/au/app/weathertron-live-rain-snow/id660925162…
They compiled the Clojure(Script) down to Javascript, combined it with Angular and packaged it up
http://keminglabs.com/blog/angular-cljs-weather-app/
swannodette · 2013-07-05
Interfacing with other JS libraries isn't really a problem - that has been relatively pleasant for a long time now (:foreign-libs compiler option allows you integrate arbitrary JS libraries).
Also note that the most popular JS libraries like Underscore.js and jQuery add little value to ClojureScript given the rich standard library and pure ClojureScript solutions like Domina.
Integrating with functional frameworks like Angular.js isn't too painful as evidenced by Weathertron - http://keminglabs.com/blog/angular-cljs-weather-app/
Jonovono · 2013-04-29
Cool! I am wondering if you have worked with other frameworks like Pedestal.io, C2, or WebFUI, Ganelon. Or any others. What do you think of them?
I am just getting started with Clojure/CS and am evaluating the different options.
http://pedestal.io/
http://keminglabs.com/c2/
https://github.com/drcode/webfui
http://ganelon.tomeklipski.com/
leephillips · 2013-01-07
There is a Clojure and ClojureScript version called c2 at http://keminglabs.com/c2/
jmatt · 2011-08-28
ArchD · 2011-07-10
I'm not a Javascript expert and I don't know D3 so I may be missing something here. I'm trying to add a d3 matcher for http://underthesite.com/, referenced in a contemporary thread:
http://news.ycombinator.com/item?id=2746864
Here's the matcher:
http://underthesite.com/technologies/d3/matchers/161
It fails to detect that http://keminglabs.com/ukuni/ uses d3. What's missing from the matcher? I notice that there's no script tag for d3 in the ukuni main page source.
ddellacosta · 2013-08-24
I'm also not impressed with the Clojure/ClojureScript code-sharing story, which requires hacks[2] to use the same code on the client and server.
I think this is definitely a "the glass is half-empty" interpretation. I mean, let's point out that you're complaining about an environment where you can share code between a codebase running on the server and one on the client--and it isn't JavaScript. And it's not ideal? Of course it's not ideal. But you can do inter-op with Java (server-side) and JavaScript (client-), using the same syntax, and with cljx, you can do this in the same file. This is freaking awesome, even with the messy bits that come along with it, in my opinion.
A smaller community, fewer libraries and less mature tools makes it kind of a bummer from a social perspective.
As far as this point, there's less I can disagree with: the community, while small, is awesome, but there is a way to go before ClojureScript, at least, is going to have the ease of "install and get going" that you have with other platforms. Everything from testing to getting a reasonable console up and running is in a state of flux and cannot be favorably compared to JavaScript, other than the argument that ClojureScript provides a better enough programming experience to outweigh the ease-of-setup that JS provides. For me that's more than enough, but for others I can understand that it's not, yet.
But it absolutely is improving, very quickly. We really need more people to be using…
pelle · 2013-01-17
We use ClojureScript (and Clojure) at http://economi.co and I'm really enjoying it.
Maybe one of the most difficult things coming into it is trying to relate it to something like BackBone.
However generally speaking in Clojure the culture is more about libraries than frameworks.
C2 http://keminglabs.com/c2/ which on the outset looks just like a ClojureScript version of d3 is actually a great library to use instead of a traditional front end framework.
Check the example implementation of the class TodoMVC list here: https://github.com/lynaghk/todoFRP/tree/master/todo/c2
It's uses normal Clojure data structures within atoms as the data model (https://github.com/lynaghk/todoFRP/blob/master/todo/c2/src/cljs/todo/c… and uses C2 to automatically update the UI (https://github.com/lynaghk/todoFRP/blob/master/todo/c2/src/cljs/todo/l… Very elegant.
I'm just starting to explore this area myself, but have already found it useful for a few smaller parts of our site.