A statement on AI https://x.com/dustingetz/status/2023054466530877534
I have been using Claude the last month and the things it delivered would have taken me significantly more time. and it can do CSS as well. and I can't.
Here's the kicker codex is better than claude (way more correct in terms of output), all be it slower.
I do think a serious supply shock similar to that affecting RAM is coming to LLMs. We just don't have enough energy or silicon.
So we're very much in a golden age of 100-200$ a month
Claude code has taken me from extreme AI skeptic to "oh shit the game is completely different, everything is up for grabs" in less than three months. I am convinced that a team of dozens armed with claude code, electric, and rama could compete directly with a team of many hundreds from the before times.
opus was enough, one thing I did not clarify in the post is that what I am doing is not really vibecoding, i think it is just regular old software engineering but 100x faster iterations and without all the braindead zoom calls to clear the fog of war and work out the design
what I tend to do is ask Claude to implement a very specific function, like add a page where the user can ask for a password reset and make a dummy call to send the email. It then goes away and thinks and a few minutes later I have the whole thing and I can check every addition it has made and then I run some manual tests to see if it works. I'm not asking it to develop a while app for me in one go.
and this approach has worked for me very well and I still can understand the code as well.
i seesaw between "this changes everything" when agentic coding delivers a successful result to "ok not quite there yet" when it goes off the rails or introduces subtle bugs
agree claude code is super useful
@him a team of dozens with claude + rama + electric will easily compete with a team of hundreds with just claude as well. If an LLM has to generate all that boilerplate for the frontend and backend with the traditional approach. It has to be checked as well. Meanwhile the team with electrama has less code uup for generation and less to verify.
Electrama, what a wonderful concept and name.
I agree. I've been zeroing in on my claude + electric + rama (+ polylith + nix) workflow, and it is getting to the point where it is almost unbelievable.
@him I've been wanting to try that with polylith. Do you have any repos or context resources you can share?
@chromalchemy do you mean the nix integration part?
I've never tried nix. But i do want to trt Electric + Rama in a Polylith codebase
@him would be great to see your setup (agent instructions). Are you doing it in a side project, or as your main job?
@chromalchemy Here's my main workflow currently (ugh I asked claude to format my text and it turned it into claude-speak, oh well): Claude Code + Clojure REPL Claude Code writes Clojure and has access to a Clojure REPL. It edits files (tracked in jj, so I can use multiple jj workspaces to work on multiple things simultaneously), then re-evaluates the changed files in the REPL. Rama + Polylith + Nix I build my backend in Rama. Rama modules have a 1:1 mapping to Polylith projects & bases. A Clojure script uses the Polylith workspace command to generate a dependency graph for Nix, which uses this graph to determine which packages need to be rebuilt — automatically, without me worrying about git tags or anything like that. Local Deployment via Lima VMs I run one or more local "deployment" instances as Lima VMs. Those VMs run NixOS using the same Nix expressions I use in production, except in prod I can divide services across multiple instances. My host machine (Mac) acts as a Nix cache for the Linux VM, so the VM is fairly ephemeral — as long as the host cache is warm, the VM comes up quickly from scratch. Incremental Deploys with Systemd I've created a generalized Rama module Nix integration that includes oneshot systemd services for launching Rama modules. Nix's Polylith-aware dependency graph is fine-grained enough that if Rama module A (Polylith project A) depends on Rama module B (Polylith project B), and C is independent, and I change B, then: Nix rebuilds new jars for A and B • Nix does not build a jar for C • Nix triggers the systemd module update scripts for A and B only Thus, a single deploy script automatically deploys frontend server(s), Rama, Rama modules, etc. to the NixOS VM with incremental updates at Polylith module resolution. UI Prototyping with Claude + curl I've developed a special htmx-like component library for Clojure that server-renders UI, based on borkdude's html library. Claude can interact with the site entirely using curl — this is key for prototyping, since it's much lower token usage and much faster than a JS-based solution relying on headless Chrome. Once I finish prototyping a section, I move it to Electric.
None of this is public yet, not sure that it will be, though I'd like to publish info about some of it in blog posts at the very least
@shkertik I'm not sure if it is for a side project or my job yet 😆
@chromalchemy this isn't mine, but might be useful: https://github.com/jeans11/demo-rama-electric
My agent instructions are a hot mess, I just have claude manage them for me tbh. For example, I built my rama instructions for claude by telling claude to:
1. Read all of the rama docs
2. Read all of the rama examples and the code for agent-o-rama
And then I had it write a detailed document and stick it in my repo. Then I asked it to add a note in its memory file pointing to the rama doc in the repo, and told it to read that file before writing any rama code.
I've been thinking about asking it to chunk that kind of large document into a bunch of subfiles, and telling it to use the ls command as a kind of table of contents. I think this might help me use tokens more efficiently.
Regarding pt. 4 IMO there's a chance we're heading towards a repeat of https://en.wikipedia.org/wiki/Productivity_paradox Also relevant video for us tech-enthusiasts: https://youtu.be/zDxPa_CnqYo I think that AI can very helpful but whether it leads to statistically significant improvements in productivity I'm not convinced of. I think everyone has many stories of how AI helped them greatly in one way or another, but the few studies that have been done (that can of course be questioned in many ways) aren't as clearly positive.
what are the advantages of using polylith? I have seen it, but not quite sure I understand it.
Basically a way of having your monorepo cake and eating it too. It gives you a way to organise code into composable and reusable components seperated by individual concern. https://polylith.gitbook.io/polylith/conclusion/advantages-of-polylith
I'd want to add some qualifiers to the final concern about AI driven conflict. Wars, being the pursuit of politics by other means, are not caused by technological advances, rather they are part of the context in which political ends are pursued. The Anglo-German naval race that was emblematic of the deteriorating geopolitical situation began before the HMS Dreadnought was laid down in the graving yards. The printing press catalysed the religious disagreements that kicked off the Thirty Years War, but the Westphalian Peace that laid the foundations of modern Europe was determined and enabled primarily by non-technological factors. That's not to say that it won't have relevance to our own deteriorating situation. A self imposed critical hardware shortage when the primary manufacturer of integrated circuits is under constant threat of invasion is hardly a stable equilibria nor a deterring position of strength for the global liberal order. As scary as the notion of LLM generated target and strike packages are, they can't enable much if there is not enough silicon substrate, high explosive payload, or industrial and power infrastructure which underpins the entire killchain to begin with to service the dizzying logistical demands of modern war. The fact that datacentres are being inefficiently run on scrap turbines while the nuclear industry is in a state of experiential decay is symptomatic of the geostrategic oversights that make the kind of era-defining conflict you are concerned about more likely, since internal instability is makes geopolitical flashpoints more likely and harder to defuse. I do think there is a War on Intelligence, in as much as there is a trend in society to build systems that attempt to denude the agency of the end user alongside a cultural contempt for the cultivation of expertise and conscious intentionality. The disruptive effects of undercutting the societal engines of growth and human prosperity are far more salient concerns to me when it comes to the unravelling global fabric and likelihood of a new global conflict.
@dustingetz do you program in Electric with LLMs? Do you feed them some special Electric v3 docs, to make them capable?
We are clearly sawing off the branch we are sitting on.
I appreciate the seriousness of your insights. Both positive and negative.