Tracking issues in github (and we use FogBugz as well) has the benefit of being where the "rubber meets the road", so it's effortless and transparent to keep up to date. Merging non-code tasks (e.g. design work) with code is still something we struggle to track and keep tabs on.
To be clear: while I can describe the problem, I honestly don't have any ideas what the most elegant or clean solution is. I have never found a satisfactory solution. I end up keeping lots of stuff in my head and writing summary emails.
I'm surprised no one has built a better way to do this. We tried syncing with Zapier first (a company I absolutely love), but if I recall correctly it was a one-way sync, and we needed it to go both ways.
No learning curve, exactly the right features.
And also there's something I like in Trello that Basecamp (I know comparing apples to oranges, but both can be used for similar purposes) doesn't support: closure. When something is no longer relevant, you archive it and it's gone, no more mental burden. Quite important when you have 100s of tickets.
I greatly prefer Tracker, but I would. I work at Pivotal Labs. Everything in Tracker is inspired by how we work and it makes perfect sense in our context.
I keep it simple: Todo, Doing, Paused, Done.
Colors indicate severity and I attach most task assets (documents, proposals, etc.) to the back of each card.
As tasks get done, they move through the pipeline. Some folks I know have an "inReview" list also before "done".
It's pretty simple that way. My only complaint is that when lists get too long it can be kind of a pain to manage them.
We're a pretty small team, I wouldn't be sure how well Trello scales to larger teams.
It has some nice features though. It's integrated with our slack chat, and it's very easy for users to pick up.
We use it for backlogs, sprints, operational tasks and many other things.
It's been excellent.