Since I mostly work alone, I often do everything in my head. If you can visualise the whole architecture from start to finish, then often you don't need to do much planning - you just start coding and if you need to ask if you're on the right track, simply bring back the architecture sketch you have in your mind. This does cause problems if I suddenly need to get someone else to take over from me, if the spec, design and everything is in my head, but I usually don't just hand over projects.
Once the feature requests starts flowing in, I'll throw them in Jira on a Kanban board and pick up tasks from the list as I go on. We don't do Scrum, just continuous development, continuous deployment, continuous testing etc. (I don't even believe scrum is the right way to go for many companies, maybe large corporates doing a lot of maintenance work, otherwise it actually consumes more time than the amount of value it brings to the table)
If the project is a multi-year project, I would often draw the whole architecture in Gliffy, there's a nice Gliffy plugin in Jira which doesn't cost an arm and a leg or you can also use the standalone Gliffy on the web.
For enormous complex projects, I would draw the whole architecture on my whiteboard alongside Gliffy, then as I finish building the components, I tick them on the whiteboard to give me a sense of progress.
My favourite place to do technical designs or to figure out complex flows is on the back of windowed-envelopes (those that you get asking you to pay bills). If you can't fit your design on an envelope, simplify it so that it does fit on the back of an envelope, it actually forces me to follow a divide and conquer process.
For projects where I bill per hour, we either use Tempo in Jira or for the current project, a Google Spreadsheet which I've shared with the client and a timer on my phone.
For source control, we used to use GitHub, but it became too expensive after we started pumping out multiple projects per week, we quickly migrated to GitLab and have several 100 repositories in GitLab with a lot of re-usable functionality which we use across projects.
We have a Jenkins build server sitting on dedicated server at Hetzner running 32GB of RAM and 8 CPU cores running dual SSDs in RAID. It pretty much builds anything you throw at it in seconds, packages it in Docker containers and pushes it to a Docker registry, then deploys the docker image on the machine itself for testing. Last year its power supply went up in flames, luckily only had a few minutes of downtime and the flaming power supply was replaced almost immediately.
Next year we plan to see what the Jetbrains ecosystem (UpSource, Hub, YouTrack, TeamCity) is like instead of having Jenkins, Gitlab, Jira etc that are all created by different companies and doesn't have tight integration between each other. We're already using Jetbrains' IDEs, so having everything integrated into each other sounds like Nirvana.