clojure-news-feed
kit
clojure-news-feed | kit | |
---|---|---|
4 | 34 | |
78 | 447 | |
- | 1.1% | |
8.1 | 8.0 | |
2 months ago | 7 days ago | |
Scala | Clojure | |
Eclipse Public License 1.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
clojure-news-feed
-
How do you decide which language/tech stack you invest learning?
Your question is interesting to me. As a software architect, I study various tech stacks and programming languages. I concentrate mostly on open source and microservice architectures. I usually start with implementing the same feature identical rudimentary news feed microservice. Over time you start to see the similarities and differences between the various implementations. I blog about this over at https://glennengstrand.info and the source code can be found in https://github.com/gengstrand/clojure-news-feed
You are looking for a decision on what programming language and tech stack to learn next based on career mobility. Here are some questions to consider.
What kind of company are you most interested in working for? Think about the size of the company. Is it in a growth market or is profitability more important? Is it a technology company? Does the CEO view technology as a profit center or a cost center? Do they have a CTO? If they do, then who does the CTO report to, the CEO, the CIO, or the COO?
What kinds of programming languages and tech stacks are on the career pages for the kinds of companies that you are most interested in? Different kinds of companies tend to cluster around different tech stacks. There are other factors to filter for such as how deeply do they embrace remote work or commute distance to where you currently live or are willing to move to.
These are lagging indicators. They are going to be more accurate than leading indicators but that also might indicate that whatever you learn next based on these factors might have a shorter shelf life.
Finally, you should ask yourself what about your current programming language do you like? Try to pick something that you would also like. The Go programming language was originally invented as a better C and is enjoying some marketability right now. Maybe that would be something to look at.
-
Clojure needs a Rails, but not for the reason you think
I have a github repo where I implement a feature identical microservice in various tech stacks. I started that repo with a Clojure version that used community provided wrappers. See https://github.com/gengstrand/clojure-news-feed/blob/master/... as an example of calling Cassandra. Recently, I added another implementation with Clojure that just called the Java drivers directly. See https://github.com/gengstrand/clojure-news-feed/blob/master/... for that version of the same call. In the end, I decided to forego wrappers and make the calls directly because you end up with fewer dependencies and are more likely to be able to use latest versions of everything.
-
Ask HN: What tech stack would you use to build a new web app today?
I have been exposed to many different tech stacks over the years. This https://github.com/gengstrand/clojure-news-feed repo contains the code used to evaluate thirteen different stacks which is what I can share publicly. What I can say is that the best choice of tech stack depends on what is being called for. Is this for an early stage startup or an intrepreneurial greenfield project? Is this for an MVP or just the next component in an already formalized microservice architecture? What are the skillsets of the developers that you will have access to? Have you reached agreement that you can throw it all away and start over or are you expected to have to live with the choice of tech stack for the life of the product? Are you mobile first? These are all important questions that very much shape the decision.
kit
-
Ask HN: What is your go-to stack for the web?
Clojure using for the server side https://github.com/kit-clj/kit
htmx for frontend, using the built-in kit htmx module.
- Kit – Clojure Web Development
-
Why Is Jepsen Written in Clojure?
I am not sure what a web framework is, to be honest. The choices for many parts of a web application are really domain-specific and I'm not sure a single "framework" would work for everyone.
As far as web-related components go, my app uses Rum (as an interface to React), ring, http-kit, pushy (for history manipulation), sente (for websockets), buddy (for authentication tools).
If you are looking for a batteries-included "I want to have some sort of webapp right away" thing, I think https://kit-clj.github.io would fit the bill, but the general feeling in the Clojure community is that unlike Python with Django or Ruby with Rails, the choice of app components is not predetermined by the language.
- A History of Clojure (2020) [pdf]
-
Most commonly used libraries/frameworks in Clojure
Luminus has, in theory, been superseded by Kit: https://kit-clj.github.io/ but even so it is still "an opinionated bundle of libraries" rather than a framework.
-
Is there an open source project focused on ClojureScript, React, Reagent?
I learned by using https://luminusweb.com/docs/clojurescript.html to get me started. It gives you a plethora of sane starting points, and you can just work on switching it to your own business logic. Troubleshooting and adding functionality will usually lead you to understand how things work. The authors of luminus have moved on to build kit: https://kit-clj.github.io/ which is probably another good starting point.
- Help finding a webdev framework that works out of the box
-
Clojure Turns 15 panel discussion video
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.
-
your thoughts on the kit framework?
The component itself is just a thin wrapper for conman, you can see it here.
-
Ask HN: Share Your Personal Site
Here’s me: https://luciano.laratel.li/
I was happy I could get the domain! Pretty simple hand-rolled server-rendered site using the kit-clj[0] and neat-css[1]. Main backbone of the site is here[2]. I used to use a CLJS SPA but it was overkill and not as nice to use (load times particularly.)
[0]: https://kit-clj.github.io/
What are some alternatives?
yada - A powerful Clojure web library, full HTTP, full async - see https://juxt.pro/yada/index.html
biff - A Clojure web framework for solo developers.
stripe-python - Python library for the Stripe API.
duct - Server-side application framework for Clojure
ripley - Server rendered UIs over WebSockets
re-frame-template - A Leiningen template for creating a re-frame application (client only) with a shadow-cljs build.
leiningen - Moved to Codeberg; this is a convenience mirror
react-query - 🤖 Powerful asynchronous state management, server-state utilities and data fetching for TS/JS, React, Solid, Svelte and Vue. [Moved to: https://github.com/TanStack/query]
bidi - Bidirectional URI routing
clojure-inertia-pingcrm-demo - PingCRM on Clojure - A Clojure/Script fullstack demo application to illustrate how Inertia.js works.
slack-ruby-client - A Ruby and command-line client for the Slack Web, Real Time Messaging and Event APIs.
usermanager-reitit-integrant-example - A little demo web app in Clojure, using Integrant, Ring, Reitit, Selmer (and a database)