Reactive Clojure: You don't need a web framework, you need a web language

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

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • derby

    MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers

    one that sort of fell by the wayside when Meteor and Ember got popular, was/is Derby.js/ShareDB. https://github.com/derbyjs/derby https://derbyjs.com/ https://github.com/share/sharedb

    The LiveView lead resurgence in server side rendering is exciting. Does anyone have any insight as to why ShareDB never really took off?

  • sharedb

    Realtime database backend based on Operational Transformation (OT)

    one that sort of fell by the wayside when Meteor and Ember got popular, was/is Derby.js/ShareDB. https://github.com/derbyjs/derby https://derbyjs.com/ https://github.com/share/sharedb

    The LiveView lead resurgence in server side rendering is exciting. Does anyone have any insight as to why ShareDB never really took off?

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

  • Preact

    ⚛️ Fast 3kB React alternative with the same modern API. Components & Virtual DOM.

    Preact is React without the fluff - https://github.com/preactjs/preact

    loc in a node project is hard to judge due to packages and the aforementioned mono repo difference, but the preact functional build artefact is an order of magnitude smaller:

  • hotwire-rails

    Discontinued Use Hotwire in your Ruby on Rails app

    I think Phoenix LiveView (posted recently on HN: https://fly.io/blog/how-we-got-to-liveview/) and Rails Hotwire (https://hotwired.dev/) are the main alternatives that have momentum right now.

    The general idea being to abstract away the difference between client and server code, so that you can write code that handles both, in a single file.

    > There has got to be a better way

    What's offensive about the OP to you? Is it just that you don't like functional programming / Clojure (fair, that's ultimately a matter of taste / aesthetics at some level)? Or is there something about the technical implementation you think is suboptimal?

  • Meteor JS

    Meteor, the JavaScript App Platform

    This reminds me of Meteor.js[0] from back in the day (2014?), which had a very similar approach—you wrote code that ran on both the frontend and the backend, and database updates were propagated automatically. It suffered from a pretty hard reliance on Mongodb and its own package manager (Atmosphere), and it was at odds with the rest of the JS ecosystem which was settling on NPM.

    This project looks very cool! I like the focus on composition, Meteor was lacking that (and really, most other frameworks do as well).

    [0] https://www.meteor.com/

  • imba

    🐤 The friendly full-stack language

    This reminds me a lot of imba[1], which mixes the front end and the back end. Though ReactiveClojuse seems to be more about reasoning in terms of a lisp for all parts of the app, whereas imba is more focused on reducing syntax noise as much as possible.

    [1] https://imba.io

  • reactor

    Phoenix LiveView but for Django

    Thank you for posting those, I wanted to post them but I don't comment often (). Wanted to chip in another contemporary: edelvalle/reactor, which is inspired by LiveView[0].

    [0]: https://github.com/edelvalle/reactor

    I am using Hotwire for a project, and I'm learning Elixir and Phoenix on the side. Finding edelvalle/reactor was immediately helpful to me though, because I cut my teeth on Python/Django, so reading a Python reference implementation helps me learn nuts and bolts of libraries, faster. (so, I figure that this might help someone else grok how these approaches work.)

  • 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.

  • aleph.js

    The Full-stack Framework in Deno.

    Coincidentally, Alephjs (https://github.com/alephjs/aleph.js) added a commit hours ago that also seems to solve this particular problem for React.

    So now there's a React hook (useDeno) that takes a callback that is only executed on the server-side, and the returned value is sent back to the client side.

  • inertia-laravel

    The Laravel adapter for Inertia.js.

  • pathom

    Pathom is a Clojure(script) engine for processing EQL requests.

    Yeah you were mistaken, it's a full stack design. They recommend https://github.com/wilkerlucio/pathom for the connection. It's GraphQL done right, you write data "resolvers" on the backend, you declare very flexible graph queries on the front end -> this populates client DB and then fulcro uses that to render frontend.

    Highly recommend reading through this section: https://book.fulcrologic.com/#FullStack

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