I have tried different methods to keep development projects on my computer organized but between work projects, open source, side projects, issue reproductions, demos, and little test projects, it gets tough. I did a quick peruse through my computer and counted over 100 repos (some on GitHub, some not). They are all over the place, and I have only had this computer for 3 months! 😱

For further actions, you may consider blocking this person and/or reporting abuse
Latest comments (45)
I use
~/Projects
as root for all my devops/web projects, like I saw in some other comments.First folder (all who start without
_
) is always "organization" mainly its a client name. I do the same inside_forks
that contain GitHub project I contribute. The inside an "organization" folder its the project name (ex:pantographe/website
).I also have a
p
alias to quickly go into a project.I try to take time to move older projects in
_archives
, then after some time, I move them to my NAS or delete them to free some space on my laptop.Zen on minimalism. I have 2 directories:
projects
for anything I work on andgit
for any repo I cloned to use. I try to name my projects smartly so the autocomplete works, and just delete any repo I'm not working on for a month from now, I can clone it again any time I want. Test projects are in~/temp
dir which is completely fine to be deleted, if some are crucial, put it in a repo that makes use of it.I don't have much of a structure, but if be honest I only have 20-25 repos locally because I periodically clean them up and store everything at GitHub (Just make sure you have a good README to set it up in the future :). I only have local projects which I work with currently.
My structure of folder "Projects":
Freelance - legacy name, but right now it's all projects from work.
Learning - projects from online tutorials/courses
OpenSource - OS projects, in most cases it's clones from the forks
Pet - My pet projects.
Code: by project > by year of last edit > version >
Graphics: on separate volume > by project
Translations: in parallel with graphics, but not embedded with them
Other: ( research docs, spreadsheets etc ) by project, again on graphics volume
but what really gets complicated and messy for me is all the web links I collect. I've set browsing history to auto discard after 3 months, because I notice my browser does slow down in loading otherwise.
If there was a way to harmonise my web links with my storage I would even alter my storage schema. Maybe its as simple as taking an extra moment to paste them over to a text file in my Other pile, then I can only keep 2 dozen or so bookmarks.
I tend to try and keep it relatively flat and simple. I have a
Projects
folder in my user directory and within that I have all my solution folders named using namespaces in the form of{Organisation}.{Project}.{Platform}
. I then have a folder calledSpikes
for any on the side work or experiments that don't have a place yet.I find this removes any issues of trying to categorise projects or separate them into languages when they may span multiple languages and platforms or having to navigate separate folders for different sources like GitHub etc. It's also easy to sort and get to what you want.
An example would be:
Projects/
----MyCompany.AwesomeApp.Web
----MyCompany.AwesomeApp.Api
----MyCompany.AwesomeApp.Android
----MyCompany.ServiceBus
----RandomClient.CrappyWebsite.Web
----MyPersonalBrand.MyNextBigIdea.Api
----MyPersonalBrand.Auth
----Spikes/
--------RandomIdea.Web
--------ThisWillNeverWork.Api
mine is similar to others:
Examples/
— learning and teaching examples, toy apps
Projects/
— side projects
Sites/
— my personal websites
Work/
— stuff i am paid for
A lot of stuff is on GitHub and GitLab, archived. I'm trying not to keep everything I ever wrote on my main computer, but rely on those sites as deep repositories.
I keep all of my projects in
~/Source/
organized in the same way that they're organized on GitHub:~/Source/${organization-name}/${repo-name}
. Everything I work on ends up in a private or public GitHub repo, so this makes it simple to find what I'm looking for and to remember where it exists on GitHub. For temporary projects / scratch space, I put those under~/Source/tmp/
and clear it out frequently to keep it from getting out of hand.I use this pattern for everything. Primary work projects, consulting projects, personal projects, github forks, etc... Namespacing via company/user + project seems to cover pretty much everything I've encountered.
I have few workspaces.
Perhaps a bit messy but I haven't had problems navigating this structure.
Curious to know about how others do since I feel this is not optimal.
I tend to have a folder for different bits (full time work, freelance, experimental), client name within that and then the relevant repos.
However, I'm pretty anal about deleting local copies I'm not working on currently.
'tidy desk(top) tidy mind' :-)