babashka

miguno 2026-04-23T06:19:17.691029Z

For a simple client-server time-tracking setup, I want to write a client that tracks uptime of a computer and, optionally, a few known processes (e.g., editor). My original idea was to use golang for the client, but i am wondering if babashka would be a reasonable alternative? Clients could be Windows, Linux, macOS, and I want a minimal-dependency tech stack on the client side that is also operationally simple to work with. Is babashka a good choice for such a client app? Notably the Windows side (e.g. to support registering the client app as a windows service running the background)?

borkdude 2026-04-23T07:05:00.370789Z

Yeah why not?

miguno 2026-04-23T07:13:11.511849Z

I am asking because, with golang, you have e.g. a very straight-forward way (as far as I understand) to codify service registration with https://github.com/kardianos/service. Whereas babashka requires external tooling for that, e.g. http://github.com/winsw/winsw or https://github.com/mtkennerly/shawl. The core functionality of the client will just be fine with babashka. My question is in the context of the included batteries of babashka. I know it has a lot (nice!), but I don't know what batteries are exactly available.

miguno 2026-04-23T07:14:02.603169Z

That is, the end-to-end installation and setup to deploy a babashka-based client to Win/Mac/Linux

miguno 2026-04-23T07:15:11.003989Z

And, if third-party tools need to be used (e.g. for Windows service registration), what people typically pick for that. Otherwise I just start experimenting with whatever I can find.

borkdude 2026-04-23T07:23:28.797199Z

I don’t know anything about service registration in Windows but if you can just register any binary with some tool then I’d expect it to work with bb. You can also make a self-contained binary with babashka that includes all of your external deps. I can find the docs for you later, afk here

👍 1