Clojure Turns 15 panel discussion video

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • clerk

    ⚡️ Moldable Live Programming for Clojure

  • Check Clerk (https://clerk.vision/) for the boundaries between data science / data viz / moldable programming

  • kit

    Lightweight, modular framework for scalable web development in Clojure (by kit-clj)

  • The cljs stack I hear about a lot (and use) is ShadowCLJS with reagent (https://reagent-project.github.io/) and re-frame (https://day8.github.io/re-frame/). ShadowCLJS is more of a build tool, but is really well documented and easy to use. Reagent is basically react but a simpler API, and re-frame is a layer on top of that provides data subscriptions and event-handlers to manage app state. It's overkill for some apps but I find it's actually super easy to work with and not as much complexity as I thought.

    For backend there is luminus (https://luminusweb.com/) or Kit (https://kit-clj.github.io/). They are basically project templates that wire together a ton of popular solutions for various things - database access, migrations, security, html templating, etc. Also includes frontend frameworks like re-frame if you want.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Sonic Pi

    Code. Music. Live.

  • As I understand it, the server is being switched over to Erlang https://github.com/sonic-pi-net/sonic-pi/tree/dev/app/server...

  • use-package

    A use-package declaration for simplifying your .emacs

  • > Deps is well documented.

    > The issue I personally found is that I needed to look at a bunch of OS project's deps.edn to see how people commonly structure things. Other than that it is a simple tool.

    This strikes me as a contradiction, because if it was well documented you wouldn’t need to look at other people’s configs to see how to use it.

    My experience with deps.edn is that every time I start a project and make a deps.edn file, I immediately draw a blank and don’t know how to structure it, so I open ones from other projects to start lifting stuff out of them.

    I still don’t know how to reliably configure a project to use nrepl or socket repl without just using an editor plugin. I definitely have no idea how to use those in conjunction with a tool like reveal.

    To me, none of that is simple. Simple would be like Emacs’ use-package. With that I know how to add dependencies, specify keybinds, and do initialization and configuration off the top of my head. And it has really nice documentation with tons of examples.

    https://github.com/jwiegley/use-package

  • reagent

    A minimalistic ClojureScript interface to React.js

  • The cljs stack I hear about a lot (and use) is ShadowCLJS with reagent (https://reagent-project.github.io/) and re-frame (https://day8.github.io/re-frame/). ShadowCLJS is more of a build tool, but is really well documented and easy to use. Reagent is basically react but a simpler API, and re-frame is a layer on top of that provides data subscriptions and event-handlers to manage app state. It's overkill for some apps but I find it's actually super easy to work with and not as much complexity as I thought.

    For backend there is luminus (https://luminusweb.com/) or Kit (https://kit-clj.github.io/). They are basically project templates that wire together a ton of popular solutions for various things - database access, migrations, security, html templating, etc. Also includes frontend frameworks like re-frame if you want.

  • re-frame

    A ClojureScript framework for building user interfaces, leveraging React

  • The cljs stack I hear about a lot (and use) is ShadowCLJS with reagent (https://reagent-project.github.io/) and re-frame (https://day8.github.io/re-frame/). ShadowCLJS is more of a build tool, but is really well documented and easy to use. Reagent is basically react but a simpler API, and re-frame is a layer on top of that provides data subscriptions and event-handlers to manage app state. It's overkill for some apps but I find it's actually super easy to work with and not as much complexity as I thought.

    For backend there is luminus (https://luminusweb.com/) or Kit (https://kit-clj.github.io/). They are basically project templates that wire together a ton of popular solutions for various things - database access, migrations, security, html templating, etc. Also includes frontend frameworks like re-frame if you want.

  • toucan

    A classy high-level Clojure library for defining application models and retrieving them from a DB (by metabase)

  • There's this:

    https://github.com/metabase/toucan

    But beware what you do with it. Avoid DB side effects from business logic.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • startrek

    A very simple demonstration of coding a reasonably simple API and UI using Clojure, Donut System, i18n support, error handling, HTMX and tests!

  • No affiliation, but I think this is a great example CRUD API.

    https://github.com/dharrigan/startrek

  • toucan2

    Successor library to Toucan with a modern and more-extensible API, more consistent behavior, and support for different backends including non-JDBC databases and non-HoneySQL queries. Currently in active beta.

  • Hi, Toucan library author here.

    +1 on avoiding side effects from business logic. This applies not just to Toucan, but to database code in general. Toucan is there to give you a way to define behaviors when interacting with your application database, for example transforming certain columns when you fetch rows from a certain table from the database. It's that plus utility functions for interacting with your database. Not really an ORM.

    Either way, Toucan 2 is out now: https://github.com/camsaul/toucan2 I'm still working on fully documenting it but it's already being used in the wild and Toucan 1 will probably be archived soon

  • xtdb

    An immutable database for application development and time-travel data compliance, with SQL and XTQL. Developed by @juxt

  • penpot

    Penpot: The open-source design tool for design and code collaboration

  • Metabase

    The simplest, fastest way to get business intelligence and analytics to everyone in your company :yum:

  • babashka

    Native, fast starting Clojure interpreter for scripting

  • Obligatory shout out to Babashka [0] which is interpreted Clojure. You just download a simple binary and you can get going. Widely used for quick-running scripts, with a lot of batteries included.

    [0]: https://babashka.org/

  • overtone

    Collaborative Programmable Music

  • Thanks. I don't know to what extend its "better-because-of-clojure" but I also found overtone https://github.com/overtone/overtone which should be good fun (though the underlying synthesizer is supercollider/C++).

  • logseq

    A local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base. Use it to organize your todo list, to write your journals, or to record your unique life.

  • athens

    Athens is a knowledge graph for research and notetaking. Athens is open-source, private, extensible, and community-driven.

  • https://github.com/athensresearch/athens

    The underlying in memory datalog style database that can run in the browser that enables these apps

  • datascript

    Immutable database and Datalog query engine for Clojure, ClojureScript and JS

  • clojure

    The Clojure programming language

  • I thought you might be trolling. But then when I looked at the Clojure repo on Github https://github.com/clojure/clojure the last commit was 2 months back. There is some merit in your arguments.

  • hy

    A dialect of Lisp that's embedded in Python

  • penkala

    Composable query builder for PostgreSQL written in Clojure.

  • If your'e using PostgreSQL, checkout https://github.com/retro/penkala . It provides most of the things you would expect when dealing with the database without it being an ORM. IF you're interested in how the API looks checkout https://github.com/retro/penkala/blob/master/test/com/verybi... which implements most of the queries that can be found on https://www.postgresqltutorial.com

    note: I'm the author of Penkala

  • clojure-cli-config

    User aliases and Clojure CLI configuration for deps.edn based projects

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts