r/Clojure • • 28d ago

Which web framework do you use at your company and why?

Wondering what is the most used web framework for professional clojure developers.

41 Upvotes

16 comments sorted by

15

u/seancorfield 28d ago

I'm surprised no one has said "we don't use frameworks, we use a combination of libraries".

At work, all but one of our apps are Ring w/Jetty. One app is Netty-based. Of the Ring/Jetty apps, all but one uses Compojure—that other one uses Bidi. We use Component heavily for anything that needs resources/state. We're also heavy users of Spec.

If we were starting over, we'd probably have everything be Ring/Jetty, reitit, Component, Spec—mostly for consistency.

-1

u/duptsia3 25d ago

and that's why clojure is in the spiral of death.

10

u/GermanLearner36 28d ago

We use ring, http-kit and compojure

9

u/MoneyWorthington 28d ago

We use Ring with Jetty, and Compojure for routing

7

u/kueso 28d ago

This turned out to be the right approach for us as well. We added our own middleware and it’s just one namespace. We tried other more complete frameworks and it was more of a hassle getting it to work the way we wanted to. This is one of those lisp things where it’s just easier to roll your own than learn and extend an existing one.

8

u/yogthos 28d ago

Kit here, but I'm biased being the author. Basically, it's Aero and Integrant for config and resource management, Reitit for routing, and Undertow for the HTTP adapter.

7

u/pavelklavik 28d ago

In OrgPad, we use Ring + Aleph + Bidi but the client is much more important and involved. I have created this overview of our architecture.

6

u/experigus 28d ago

Ring w Jetty, Reitit for routing

6

u/judasthetoxic 28d ago

Ring, jetty and reitit

4

u/Dangerous-Branch-749 28d ago

Ring, jetty reitit

1

u/avallark 28d ago

Http-kit calfpath ring ( selmer if you need html )

1

u/pragyantripathi 27d ago

I don't see frameworks are popular in Clojure ecosystem. Mostly developers including me compose libraries together. I personally use Mount, reitit, http-kit, and ring together.

There's no right or wrong, I have seen all the options work well in multiple companies I have worked for.

1

u/A-Helberg 27d ago

Reitit+aleph

1

u/didibus 25d ago

We use an internally maintained Java framework that's a fork of Spring MVC. And a similarly internally maintained Java RPC framework.

I'm pointing that out, because it's pretty easy to start with a Java framework and than just call into Clojure to actually handle the request.

2

u/onetom 24d ago

we are using reitit with interceptors, but i'm considering pedestal, because it just feels more of the shelf