ShipClojure

23 posts

ShipClojure

ShipClojure

@shipclojure

Ship your Clojure startup in 1 day. Complete boilerplate with auth, payments & UI components. Built for speed. 🚀

Sumali Ocak 2025
7 Sinusundan83 Mga Tagasunod
ShipClojure
ShipClojure@shipclojure·
@thesharmanator @ovstoica Hey Steve, the datom stack will launch somewhere next week! I'll keep updating on the progress. Currently the docs are remaining to finish up!
English
1
0
0
28
Steve Sharman
Steve Sharman@thesharmanator·
@ovstoica @shipclojure Sounds brilliant - any news on when? I bought in at launch, but have not done much apart from experiment yet, as soon as I saw the Datomic stack was on the way, I forced myself to wait :)
English
1
0
1
59
Ovi Stoica
Ovi Stoica@ovstoica·
The new Datomic/Replicant/Datascript stack for @shipclojure now has automatic CI/CD through kamal-deploy.org. It's awesome! You own your infrastructure, you can deploy to any server, whether Digital Ocean, Hetzner, or any other VM vendor. Stay tuned for the official launch! You get Dockerized zero-downtime deploys, automated directly from GitHub Actions! Nothing better to get you into flow-based development. The deployment contains: - Automatic Datomic Transactor Setup - Memcached for Datomic - PSQL DB used as Datomic storage - The app itself Note: The deploy took 7m 24 as it builds the frontend and backend, and the caching layer was busted as I made modifications to bb.edn in this particular example. With full caching, it can be as fast as 2-3 minutes to deploy a simple fix to the backend.
Ovi Stoica tweet media
English
2
3
17
925
ShipClojure
ShipClojure@shipclojure·
ring-nexus-middleware is used in many shipclojure handlers for seamless unit testing 🚀
Ovi Stoica@ovstoica

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… Examples: github.com/ovistoica/ring… Hope this is useful for you! 🥳

English
0
0
5
216
ShipClojure nag-retweet
Ovi Stoica
Ovi Stoica@ovstoica·
@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)
Ovi Stoica tweet media
English
0
1
4
313
ShipClojure
ShipClojure@shipclojure·
@via_marketing_ There are currently 40 customers of shipclojure. I'm not aware of any of them being enterprise but that'd be cool
English
0
0
0
50
ShipClojure
ShipClojure@shipclojure·
🚀 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
English
1
4
20
2K
Turjan of Miir
Turjan of Miir@turjanofmiir·
Any emacs users heavily using LLMs as part of their workflow? What is the closest cursor/copilot experience? some cli? gptel?
English
2
0
5
412
ShipClojure nag-retweet
Ovi Stoica
Ovi Stoica@ovstoica·
Official launch of @shipclojure is May 1st. Stay tuned!
English
0
1
3
151
Mike Thompson
Mike Thompson@wazound·
Given that LLMs often mess up bracket matching in #Clojure, causing annoying, unnecessary iterations, I'm wondering if "someone" should develop a tool (MCP-based?) to catch mismatched brackets, report the issue for AI correction, and then we integrate the use of that tool into our coding prompts. @cljtogether
English
4
0
7
514
ShipClojure
ShipClojure@shipclojure·
Mark your calendars for may 1st! DM me for special discount for early birds
Ovi Stoica@ovstoica

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

English
2
0
3
166
ShipClojure nag-retweet
Ovi Stoica
Ovi Stoica@ovstoica·
@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.
Ovi Stoica tweet media
English
0
3
22
574
ShipClojure
ShipClojure@shipclojure·
@ABogoyavlensky This is very cool! Great job! I took some parts of your lint CI config :D
English
0
0
1
8
Andrey Bogoyavlenskiy
Andrey Bogoyavlenskiy@ABogoyavlensky·
🚀 Introducing Clojure Stack Lite! The quick way to bootstrap your Clojure projects with a modern, lightweight SSR stack: - Integrant/Reitit - SQLite persistence - CI/CD with Github Actions and Kamal - HTMX-powered UI with TailwindCSS stack.bogoyavlensky.com #Clojure #Starter
English
3
2
19
568
ShipClojure nag-retweet
Anton Lobach
Anton Lobach@AntLobach·
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.
Anton Lobach tweet media
English
4
6
66
2.7K
ShipClojure
ShipClojure@shipclojure·
Always here for the functional programming afficionados 👍
Ovi Stoica@ovstoica

@gyurisc If you’d like to change the stack for something more designed for functional programming, you could try @shipclojure

English
0
0
1
132
alex
alex@alex39076682·
@ovstoica @shipclojure is there any way for you to know the execution environment (mobile vs web)?
English
1
0
1
8
Ovi Stoica
Ovi Stoica@ovstoica·
I'm transitioning @shipclojure to access-token + refresh-token authentication. An access token is valid for 15 minutes. After that, you obtain a new pair of tokens using the refresh token. The refresh token is safe as even if a hacker tries to use a stolen refresh token, if it is used more than once, the whole family of tokens is deleted, prompting all owners of that family of tokens to log back in. For extra safety, the access token is only stored in memory on the front end. What do you think about it? Here are some tests for it:
Ovi Stoica tweet media
English
4
0
15
432