
Ask HN: How do you manage multiple projects / servers as a single developer? - M4v3R
I run a one-person developer shop and currently work for only one client. I worked on multiple projects for this client, each with slightly different stack - some were PHP with MySQL (legacy stuff, each using a different framework), some are NodeJS based with MongoDB storage. Some servers are on Vultr&#x2F;DO and I have root SSH access to them, while others are managed servers with cPanel and FTP access. Databases live on most of the servers, but for the production ones we use an external MongoDB service. Basically it&#x27;s all over the place. I need to remember how to access and manage all of those services, which gets hard if for example one of the projects wasn&#x27;t updated in a while and I suddenly need to refresh my memory on how it was set up, how to update and deploy it.<p>My question is geared towards people who also work as a single developer (I assume that in big companies this is not a big issue because there are teams working on separate projects) and have similar challenges - how do you keep up with all of this? How do you handle your client telling you that there&#x27;s a bug that needs to be fixed in an app you last worked on two years ago and don&#x27;t really remember the specifics of its setup? Also, I fear that if something happened to me, this client would be in a very hard situation if he wanted to transition those projects to someone else.
======
nickjj
I'm a solo developer and I currently have 110 projects on my development
workstation. These are a combination of my own projects and freelance client's
projects over the last 20 years.

Not all of them are still live on the internet but my general strategy to keep
everything in order is to have an encrypted blob of text associated to each
project using a CLI based password manager that I use. I've written about this
tool on my blog at [https://nickjanetakis.com/blog/managing-your-passwords-on-
th...](https://nickjanetakis.com/blog/managing-your-passwords-on-the-command-
line-in-linux-with-pass).

It contains things like which domain registrar I used, where the hosting is,
passwords for everything, random notes that are important, context about the
client, etc..

Keeping the stacks separate in development is easy with Docker, and for my
non-legacy clients I tend to just spin up a DO droplet and use Ansible to
manage it (or use DO's 1 click installer for things like WP sites).

It wouldn't be a problem at all to hand over any of these projects to someone
else but in the 20 years of doing this, I was never put in a position where a
client told me to hand the reigns over to someone else.

I still have some really old clients from the mid 2000s that have 10,000+ line
apps written in PHP with no frameworks. Having to patch that app haunts my
dreams. Luckily I haven't had to touch it since 2007 and it miraculously still
runs well.

------
stephenr
Document the living shit out of everything

