First I pick my drum samples and separate them into 4 or 5 tracks, usually: Kick, Snare, Hats and one or two Percussive tracks depending on the genre
I make a simple 8 or 16 bar loop that I like with one or 2 different flares in each half to make it interesting
Then I EQ all my sounds, removing all the frequencies I don't need and boosting where necessary
Once I'm happy, I add my reverbs, widen the snares, fatten my kicks, add transient shapers... whatever I need to make the beat "fuller".
Kicks get converted to mono, snare panned slightly to the left, hats panned slightly to the right and percussion to wherever it sounds good.
Lastly for drums, I set my levels and group the tracks so that I can change all of the volumes with one control for the rest of the project.
I make my bass with whatever synth/s I choose and make a loop with the fullest sound that I want. I'm basically making the "meat" of the song now and I'll use automation and filters later.
Once I have my bass, I'll add one or 2 more synths and make a melody plus any other synths/sound FX I need will all go onto their own individual tracks
EQ all the synths, add saturation, chorus, exciters or whatever I need
Set levels and panning, depending on the song, the 2 melodical synths will usually get panned far left and far right with the bass down the centre and the FX wherever they fit
If i'm going to use vocals, I'll add them next. EQ them and usually remove the main frequencies of my snare by making a few sharp cuts, then pan to wherever they fit but never too far from the centre
Once I'm happy, I'll make a simple layout of my song with all the pieces I currently have. No automation yet, just hard transitions.
Now I'll take my bass track and make 2 copies of it and group them. The copies will all be EQ'd so that one is the Sub (roughly 40 - 160hz), one is the body (160 - 400) and the other is the high end of the bass (up to around 750 - 1khz for example)
I'll sidechain the sub and body of the bass with my kick, and sidechain the body and high part of the bass with my snare
All synths that hit the snare frequency range get sidechained with that too.
Sometimes, for example in house music, I might split and group my synths into one or 2 tracks and isolate the hi-hat frequency range and sidechain that with the hats.
Once I have a good clean mix I'll get to work on adding automation and filters to make things sound interesting. Sometimes I'll even EQ different parts of the song differently during a breakdown or a section of the song where there are lots of instruments playing at once.
Once I'm happy with my mix I'll add white noise and/or pads to fill the remainder of the frequency range and add some energy to my buildups.
Tweak everything until I'm happy.
EQ the master channel
Done (ready to be mastered)
Master the track
Realise I'm not happy
Go back and tweak
Master again
Repeat until I'm finished or I give up