I use tmux as my daily terminal multiplexer. Over time I've built a small set of shell helpers and keybindings that make session management nearly frictionless — both locally and on remote machines.
Every project gets its own tmux session, named after the directory. If I'm in ~/code/myapp, the session is called myapp. Dots get replaced with underscores so tmux doesn't complain (e.g. my.project becomes my_project). This convention means I never have to think about session names — the directory is the name.