• So much software.

    The problem is, the target audience is so niche: CLI users, developers, people who value shallow dependencies, heterogenous environments, and localism. Not by any means unique or even rare, but certainly a minority. And I hate marketing and self-promotion, so it makes it difficult for me to even post release announcements.

    Luckily, I’m mostly scratching my own itches, so userbase size isn’t important, but knowing that at least a few other people are getting value out of my work would be nice.

    Ima clarify that: large userbases are a royal PITA. Yes, there are benefits, but the sense if obligation can be oppressive, and it’s hard to find ways of saying “no” nicely.

    • Cratermaker
      link
      fedilink
      arrow-up
      1
      ·
      9 hours ago

      What software have you made? Sometimes people make me feel crazy when I tell them it’s bad to have deeply nested dependencies. Often I’ll dismiss a library if it depends on other things. I think the software world is rife with the idea that “if it works now, then my job is done”.

      • Thanks for asking!

        I work on a variety of projects. Most are in Go, but I could have used Rust if I liked it more; they both tend to compile statically linked stand alone executables.

        Most relevant to the discussion is Claptrap, a flags library for Go that has no external dependencies and could be imported into a project my copying one file and changing the package. I deal with added functionality with additional, optional, packages that can be imported to add features like conf file support, env var support, man page generation, pretty printing, etc. Each package used adds another dependency, but they’re each optional and relatively small, readable (I hope!) and auditable. I wrote Claptrap after changing flags libraries something like 5 times with each new project because there was something I didn’t like about the last one I tried. I even did an analysis of dependencies and code complexity on about two dozen different popular options.

        Then there are a bunch of little tools I use daily. One’s Legume, which is a distributed ticket tracker based on code comments. No external db, no external service, relies entirely on standard code commenting conventions developers have been using for decades. Again, single executable, and it’s pretty fast. It’s not the first such tool, but I think it’s the best.

        I have several other little tools I use daily. I have what I think is a really nice set of scripts and zsh functions based around todo.txt files. The main one is tdp, which provides a bunch of functions for doing executive lists, accessing special todo files more easily, and interacting with then through fzf; that may be the set of tools I use the most throughout the day, but it’s not really packaged for release or especially well documented. I rely heavily on todo.txt.

        I wrote a keep-a-changelog generator for Mercurial projects. It’s not as fancy as git-cliff, but it does the job.

        I’m the maintainer for gotop since the original author abandoned Go for Rust. I’ve not been spending a lot of time on it because it needs a refractor and I haven’t found the energy for it, and there are so many good alternatives. That project is all dependencies, so nothing minimal about that.

        There’s a really rough TUI SMS chat app I’m writing called dsms, because I hate communicating on phones. It relies on two programs to be running on your Android phone, because there’s no app that both forwards SMSes and allows sending through an API call, so it’s kind of a pain and nowhere near ready for primetime.

        And I recently wrote a CLI tool called dvalv for encoding and decoding files encrypted with the Android app Valv (which I _didn’t_write), so if you SyncThing your Valv directory to your desktop, you can decrypt and access your files there.

        And I have a really obtuse, byzantine set of tools for taking a resume.json file and generating Word, ODT, HTML, Markdown, and pdf (via Typst) output, via a couple of different templates. The projects unimaginatively called “resume”. That’s entirely for myself, but it someone wants to use it, I’d be happy to walk them through the process of getting everything set up to do so. It uses a couple of very nice templates that I patterned after a couple of professional career councilors. The repos isn’t up to date; I need to push some changes, but since I’m positive I’m the only user I haven’t made it a priority.

        A tool I’m extremely happy with and use maybe even more than tdp is rook. This one I did announce on Lemmy. It’s a sort of headless secret store backed by a KeePass DB, and it’s one of the most useful tools I’ve written recently. Rook’s in both AUR and Alpine testing.

        There’s a little busybox-compatible Lua script for DD-WRT routers that’ll shuffle and pick a VPN exit node from ones stored in the router; I use it to hop my exit node once or twice a day via a cron job. I use Mullvad and there script might have some assumptions built-in that won’t work for non-Mullvad accounts, but it’s not exactly rocket science.

        I forked a lightweight, pure-Go DB project and did some substantial modification, and called it leaf. These sorts of DBs are a dime a dozen, but this fit my needs, which included being usable on programs cross-compiled for mobile devices.

        What’s taking all my time lately, though, isn’t my project. I’ve been doing a lot of work on stmps, which is a hard fork of stmp, which is a Subsonic TUI client. I’m doing things like adding album art and synchronized lyrics support, bug fixes, and so on. My dev branch there is called “xxxserxxx”.

        All of these are actively developed, if not necessarily getting a lot of commits. I fix bugs as reported, and make improvements as needed.

        Here’s a full list; nearly all my projects are on Sourcehut.

    • Oka@sopuli.xyz
      link
      fedilink
      arrow-up
      8
      ·
      2 days ago

      I relate. Marketing myself feels like lying at best, or trying to get people’s money at worst. I wish I could just say “hey I made this thing, i hope it helps in some way” without putting a price tag on it.

        • Yes, but it’s that act of self-promotion that is the issue, not whether you’re charging for it. It can be almost worse for OSS, because users can be astonishingly critical, demanding, and insulting about something you’re giving away for free. If I was charging for it, I would be less offended, because they’d have some justification for being irksome.

          Promoting your software still feels like sales, somehow - that’s growing up in a capitalism, I guess, plus you’re opening yourself to all that criticism.

    • FourPacketsOfPeanuts@lemmy.world
      link
      fedilink
      arrow-up
      7
      ·
      1 day ago

      I can relate. I wrote an insanely good optimiser for the loading of data to the trading platform for a major fund management company and there are like… 2… people in the world who know and appreciate