3 ms·
Clojure(script) with re-frame, using the luminus template. https://github.com/Day8/re-frame https://github.com/Day8/re-frame http://www.luminusweb.net/ http://
by jgoodhcg 9y ago
Clojure(script) with re-frame, using the luminus template.
https://github.com/Day8/re-frame https://github.com/Day8/re-frame
http://www.luminusweb.net/ http://www.luminusweb.net/
edit: Should probably say why...
- Clojure and clojurescript give nearly identical experiences on the front and back end, with the ability to actually share some code between the two.
- Clojure is dynamic and spec gives some really awesome validation and generative test capabilities
- There is a lot of fuss around javascript frameworks and dealing with html / css build tools and their arbitrary syntax. Clojure front end frameworks provide tools that make templating html look just like regular data structures in clojure, styles too. With stylefy you can also keep all styles inline while supporting media queries. It really is a low cognitive load setup once you get going. I love it.
https://github.com/Jarzka/stylefy https://github.com/Jarzka/stylefy
edit-2: More whys...
- re-frame is basically redux but easier and with less boilerplate. I use it for small and large projects.
- Pure immutable functions are such a game changer. Even poorly written projects with tons of features can be reasoned about and broken down for long term maintenance if the language supports immutability and pure functions. Re-frame really plays to this strength for managing state and I can't say enough good things about it. Been working with it for 2+ years and I can't imagine switching for anything else I've seen out there.
- WalterGR 9y agoHow healthy is the Clojure web development ecosystem - especially library availability - compared to Ruby on Rails and Django?
- jgoodhcg 9y agoI haven't tried to find something and not found it. The back end is way more mature than front end SPA stuff so I'll just list some things I'm really glad to have in that space - re-frame : like redux but better - re-learn : lets you create tutorials for application with no changes to dom - cljsjs/filesaverjs : cross browser file download dialog - cljs-react-material-ui : material ui react library port - camel-snake-kebab :useful for changing casing - com.rpl/specter : easy way to deal with large nested data structures - stylefy : inline styles with support for media queries and animations (all with clojure data structures!)