dev-a personal project tool

10 Mar 2024 ideas dev tools

dev - the personal project tool

I follow the same set of steps with every personal project:

I’ve also created a docker container for the project so I dont have to worry about installing system-wide runtimes (e.g., ruby) for just one project. so I’d like to make a tool that does this kind of thing for every project so its self-contained.

Requirements

  1. Create a new project, which sets up:
    • a folder with readme and journal.
    • a related docker image with a sane default docker file and shared volume
    • git init’d repo.
  2. Interactive use of the container during coding sessions without knowing details of docker commands to do so.
  3. Ability to install software in the container and have it become part of the container image, either as a snapshot or (preferably) as declarative updates to the dockerfile.
  4. Non functional: Use a container library that does not need root access, such as podman.
  5. Push whole project to github/gitlab/etc
  6. (Nice to have) Support for multi-component projects. Each component would be an independent project on its own, but work together to form a cohesive solution. For example, a set of microservices that form an ecommerce site would be multiple components in a single project.

Mockup of UX

In what follows dev is a stand-in name for the tool proposed.

Implementation thoughts

As described, this looks like a thin shell script veneer over docker/podman, and that’s probably not a bad thing (TM). The only interesting/complicated bit might be the ability to reify cli commands run within the container as dockerfile commands. However, I wonder if that too might be too much. Exactly how reproducible should every step in this process be, especially if it starts with downloading a binary?

© 2024 Vinod KD