Mixxx is the open-source DJ software I use for everything from bedroom mixes to parties. My setup is pretty cheap, but effective. I use a Maya44 USB sound card, a Stanton STR8-60 turntable, a Stanton T.80 turntable, a Numark Total Control controller, and an M-Audio X-Session Pro controller. The Numark controller is now my main controller, but I used to use the X-Session Pro alone (now, it serves as an auxiliary controller to provide a few extra buttons and knobs).
I'm a big proponent of vinyl control; it's an excellent way to get an "intuitive" sense of what your music is doing as it plays. I use Serato Scratch Live timecoded vinyls with my turntables.
I've contributed several improvements for Mixxx that mainly aim to improve the UI as well as debugged or fixed a variety of interesting bugs (usually involving vinyl control). Additionally, here are a few other things I've made for Mixxx.