I use tools like a persistence layer for my thoughts. I can "think in words" but my brain defaults to "thinking in pictures" mode. When I think about a database schema I automatically visualize the tables and the connections between columns in a way similar to how most of these tools visualize the schema. My usage of these tools is more or less of me replicating what I see in my mind as a "save state" that I can resume in a day, month, or year.
Pretty much any internal tool/TUI/CLI/library I've created. If I had to guess I'd say at most 25% of the company projects I've worked on have launched AND have consistent usage. Working hard on something just for it to wither crushes my soul but internal projects are different. They're all skunk works projects. No tickets. No project/board. No PM pushing back on how many points (read: hours) something should be. I'm solving real problems that directly impact the quality of life for myself and my coworkers. The best part is getting real, genuine, feedback. If something sucks they'll tell you and they won't sugarcoat it.
I love this take. What language(s) do you typically use to write CLI programs? I'm also interested in learning about what types of internal TUI tools you have created.
You don't. My employer switched to this type of project structure 16 months ago and so far all "projects" have been useless short sighted solo work.
The only benefit I've seen is it's a great for anyone who wants to coast until retirement. For example my current "project" is to stand up our production Kafka cluster. I provisioned and configured the servers within a day and now I'm sitting around twiddling my thumbs for the next 89 days.
I think my favourite weekend project I've built was an image transformer plugin for Craft CMS. The popular (and only) free image plugin had been deprecated and the author was only going to continue supporting their paid version so I hacked together an Imgix-inspired plugin called Jitter[0] over the weekend. It's not very popular but I like it and use it frequently.
While it's not a very interesting project it's my favourite because of what happened after I published it. While I was at work I noticed the plugin was installed on one of our new client's websites. I went to my boss and asked him if he installed the plugin and what he thought about it. He said he did and it was better than <old plugin>. AFAIK they're still using it years later and I don't think they ever realized it's my plugin.
It's not a commercial product but I've spent some time building a Magic The Gathering deck builder[0]. I want to build a VTT engine but I feel like if I'm gonna receive a cease and desist letter from Hasbro that'll be the thing that triggers it. ¯\_(ツ)_/¯ it was mostly a 2 week project to learn Go and HTMX anyways....
I help maintain a user-facing ASP.NET project running .NET Framework 4.5 that uses jQuery 1.0 for most of the UI. We launched our first new feature using HTMX back in November and it worked out pretty well for us and we plan to continue using it moving forward.
I also work on a React site and I wouldn't want to move away from it unless someone dared to utter the word rewrite.
I'm not someone who usually gets excited by new major releases of frameworks/libraries but this one feels different. I got my start with CRUD PHP websites with jQuery. I've been using HTMX for the last year and it fills me with nostalgia while also allowing me to move faster when building UIs.
This is how I've used DELETE. Something like DELETE /users/{uniqueUserId}. In ~10 years of building CRUD apps I don't think I've ever sent a body or query params with a request.
Some tools let you pass a parameter to indicate that you only want the request to take effect if the requested resource is in some specific state. For example, Google Cloud Storage uses headers to allow you to set preconditions that must be met before the action takes place. For DELETEs you can use this to say "delete this resource but only if its generation (sort of a timestamp) is exactly $foo", where $foo is the generation last known to the client.
What about where you're not just deleting a single entity by id? Like, for instance where a user can bulk select multiple items and then choose to delete them all (like email for instance), or maybe deleting by criteria, like "delete all Entities created before time X"
My gut says I would use query params though I typically stick with 1 action effects 1 record. I can't recall any specific times when I built bulk item management into an app but I'd say that's a personal preference on my end.