ring-nexus-middleware is used in many shipclojure handlers for seamless unit testing 🚀
Just released ring-nexus-middleware 🎉
Middleware to support FCIS (Functional Core, Imperative Shell) style programming in ring handlers through github.com/cjohansen/nexus - a zero-dependency data-driven action dispatch system.
Why?
Classic ring handlers are hard to test and, 99% of the time, are impure functions. The classic ring handler goes like this:
1. Add dependencies (DB connection, client with internal secret, etc) to the request map (or to scope with a hoc)
2. Do impure stuff in the request handler body
3. Return a ring map based on the results
What ring-nexus-middleware does:
• Enables Ring handlers to return nexus actions instead of response maps
• Provides built-in HTTP response actions (:http-response/ok, :http-response/bad-request, etc.)
• Adds a pure snapshot of your system to each request
• Works with any “live system” (atoms, Datomic/SQL connections, etc.)
Using ring-nexus-middleware, you can write pure handlers that are easily testable.
Github: github.com/ovistoica/ring-ne…
Examples: github.com/ovistoica/ring-ne…
Hope this is useful for you! 🥳
ShipClojure retweeted
Replying to @shipclojure
@shipclojure has launched and we have the first clients! 🚀
More development into the program will come so get in at the launch promo price! Next on the list:
- More ai components
- Recipes for common flows you’d want
- Possibly datomic variant (still considering)
ShipClojure retweeted
New release of babashka.fs - file system utility library for #clojure!
github.com/babashka/fs
#babashka
🚀 Announcing ShipClojure: Build & Ship Your Clojure Startup in 1 Day
I'm excited to launch ShipClojure, a comprehensive starter kit for Clojure developers. After four years of building with Clojure, I've packaged my knowledge into a complete template to help you launch faster.
ShipClojure includes:
- Full authentication system (Email, Magic Links, OAuth)
- Payment processing with Stripe (subscriptions & one-time payments)
- 30+ beautiful themes powered by TailwindCSS & DaisyUI
- Component library with server-side rendering support
- PostgreSQL database setup with migrations
- Re-frame for state management and UIx for React components
- Transactional email templates and delivery system
- Dark/Light mode with automatic switching
- AI integration ready for chat and content generation
- SEO optimization with meta tags and sitemap generation
- Complete blogging system with Markdown support
- Deployment tools for Docker & Fly(.)io
Why spend weeks building infrastructure when you can start creating value immediately?
🔥 SPECIAL OFFER: 10% OFF for the first five people who retweet this post! Simply DM me after retweeting to claim your exclusive discount code.
See the live demo and get started today: shipclojure.com
#Clojure #ClojureScript #WebDev #SaaS
ShipClojure retweeted
Official launch of @shipclojure is May 1st. Stay tuned!
Mark your calendars for may 1st! DM me for special discount for early birds
Replying to @shipclojure
@shipclojure is officially launching on May 1st. Many people told me I should drop the project since it is a small market. I didn't do it because I firmly believe #clojure should see more adoption, given the productivity gains and pleasure it creates for programmers.
I don't want the language to fade into "nice language" territory in this new AI age.
I'll post more updates in the coming weeks.
ShipClojure retweeted
Replying to @shipclojure
@shipclojure is officially launching on May 1st. Many people told me I should drop the project since it is a small market. I didn't do it because I firmly believe #clojure should see more adoption, given the productivity gains and pleasure it creates for programmers.
I don't want the language to fade into "nice language" territory in this new AI age.
I'll post more updates in the coming weeks.
ShipClojure retweeted
The beauty of virtual threads for non-blocking I/O: just clean, sequential code. That’s a big part of what makes Clojure such an awesome language for web dev right now.
Always here for the functional programming afficionados 👍
Replying to @gyurisc
If you’d like to change the stack for something more designed for functional programming, you could try @shipclojure
Just a taste of what I can achieve
I built a voice AI agent that runs in the browser using @shipclojure and voice-fn. All of the code is written 100% in #clojure
Updated all deps to latest without breaking changes.
Switched from ring-jetty-adapter -> http-kit to support sente
Stability is one of the biggest advantages of the #clojure ecosystem
I updated some dependencies of @shipclojure and everything just kept working as normal.
You can still get early access
New development for @shipclojure. The best boilerplate to build a #clojure product fast 🚢🚀













