Thank you for your work on Hammerspoon! I’ve been using it for years.
Would you mind elaborating on your vision for v2? Was there a certain limitation in the previous architecture that you’re trying to avoid this time around? Was there something in particular that drew you to choosing JavaScript for this version?
The limitation is entirely on the developer side - for years now there have only really been three of us working on Hammerspoon with any regularity, and that has been significantly dwindling down to mostly just me and Chris Hocking.
Honestly, in 2026, I do not want to be maintaining a 100k line Objective C program.
So, my current experimentation with a v2 is to see how easily I can catch up with where v1 is, just using Swift and JavaScriptCore.
There are lots of things about the Lua APIs that I don't like, and I'm addressing some of those as I go, but I'm currently in a phase where I'm targeting parity with everything I need for my v1 config, at which point I can cut over to running v2 and then see how things are looking and what can be refined/reworked.
Jujutsu is “just” a piece of software that you install, and it is free and open source. Graphite.dev is a service, and it is not free, but as a service it gives you features that Jujutsu cannot like automatically merging stacked PRs.
For something as fundamental as source control in this day and age, I’d go with the former open source option (and have recently been learning Jujutsu)…
When we tried it, gather.town set an awkward expectation that team members had to stand at their virtual desk, otherwise they weren't _actually_ online / working.
That tracks. To me, gather.town is an attempt to replicate office dynamics in a remote setting. In an office, being AWOL is looked down upon. I can see how gather.town builds the same expectation.
In my experience, this expectation gets set either way. Whether that be a green light on slack or having your video on for all calls.
I used a 3d-world collaborative environment in a remote company once, and the only effect I noticed was that it brought the awkward parts of the physical world into the digital world. Where do I position myself? Where do I "sit"? Should I "sit"? Is this the right room? What's the "physical" location I'm supposed to be in?
It was like those flash/java-applet 3D navigation interfaces for websites that were semi-popular for a few years, way back: cute, but just made everything slower and harder.
I'm one of the founders of Evidence. Tenno looks fantastic, there are a lot of great ideas in there. I also really like what you've done w/ the side-by-side code examples in your docs.