Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Which folder/directory do you store code in?
4 points by llmblockchain on July 7, 2024 | hide | past | favorite | 24 comments
I'm doing some summer clean up and curious to hear how people store/organize their code :)


    ~/wrk/projectname/
If I haven't touched a project in a long time the 'projectname' folder gets moved to an archive disk. That prevents my /home directory from getting clogged with obsolete projects. I always try to keep my /home directory under about 10-12 gigs.

/a1 is "archive-disk number one":

/a1/comp is where computer code/information/manuals/etc is stored:

/a1/comp/j_wrk_master is where inactive code projects are stored indefinitely

    '/a1/comp/j_wrk_master/projectname'
If the project needs to be worked on again, the '/a1/comp/j_wrk_master/projectname' folder gets moved back to become '~/wrk/projectname' again.

Rinse and repeat.


    /s/p/
I made my project base folder path as short as possible. This reduces noise in error output, etc.

Also lots of people blur their username from pathnames in screenshots. No need to do that.

'p' is short for projects

's' is a drive partition used for local copies of data synced to cloud storage (Dropbox, Google files, etc). Can be backed up less frequently.

I use https://www.insynchq.com to prevent folders like 'node_modules' from being synced


One more tip:

https://github.com/ajeetdsouza/zoxide is amazing for returning to recent project folders from the CLI.

(Then I have a CLI command to open an explorer window. Directory Opus, actually)


I keep old projects in:

    /s/p/.archived
I also started putting a text file in each repo like (readme.md) because I often forget either the name or purpose of a project after a few months/years.


~/src/projectname/ for things I've written, patched, or am contributing to.

~/build/projectname/ for things I've downloaded/cloned for reading or compiling.

I generally consider ~/build/ to be ephemeral and it gets deleted whenever I build a new PC or start running out of disk space.

~/src/* gets moved to ~/src.old/ roughly once every five years, just to keep things fresh. Both are still backed up.


Interesting, I came to a similar structure.

~/.src/my # my stuff

~/.src/oss # things I've downloaded, built from source, etc.

I have a bash alias 'ws' that 'cd ~/.src' so most of my movement is like: 'cd my/gamedev/pong' or 'cd oss/helix', etc.


why a hidden folder?


Aesthetic.

When you `ls` $HOME or open a Finder it's a lot nicer when things match (Documents, Videos, etc). It's weird to see that one random folder (src).

I know typing a dot is annoying, hence the Bash alias.


~/Code/<repo hosting provider>/<username>/<group (if applicable)>/<project name>

For example:

~/Code/codeberg/beretguy/foo_group/bar_project


`~/dev/` with subdirectories for personal and work projects, which are configured in my .gitconfig to automatically use the correct idents, keys, etc.


~/proj for messing around

~/github when I promote a messing around project to something i want to work on.

Same structure on Mac, Linux, and Windows (except I'm in %HOME% on 'doze).


~/src/<org-or-project>/<repo>


I like 'proj' for my own projects, 'git' for stuff I clone and may or may not contribute to.


~/code/projectname

If I have an upstream branch I tend to do

~/code/GitHub/reponame

Or

~/code/GitLab/reponame

Depending on where it’s hosted.


~/projects/<repo>


~/gitlab/<repo>


macOS:

/Users/userName/Developer

Windows:

C:\Users\userName\source

If you name a folder 'Developer' in macOS, it automatically adds a little Xcode-stylized icon.


> If you name a folder 'Developer' in macOS, it automatically adds a little Xcode-stylized icon.

:0


~/Documents/Code/


~/GitHub/<repo>


~/work/src/...


what about things outside of your paid vocations?


Sorry for the delay! I need a way to monitor discussions that isn't me polling for updates).

That IS my local/personal convention. It comes from my Amiga days where we had a second partition called work: (no home directories remember). I never liked ~/Documents very much but ~/work performs the same purpose.


~/git




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: