One type of motorcycle parts washer you have no doubt seen and most likely used is otherwise known as a dishwasher.
Dishwasher detergent is really designed for animal or vegetable based grease, whereas we are dealing with substances which are mineral based. It is also quite corrosive and so it would be best to not use this on aluminum or zinc-based parts. It might be possible to use some other sort of detergent.
I recently investigated another technique called electrolytic cleaning. This is claimed to be able to strip off old paint as well as dirt and grease without resorting to messy mechanical means such as wire brushing or other abrasives or unpleasant chemicals like paint stripper. It could be used as a preparation for painting as well as plating.
Electrolytic cleaning is even able to remove a good amount of rust from old parts. You can find companies online who sell kits which contain most of what you need and it is not that expensive. The setup is very similar to a plating bath, except that the anodes (connected to the positive terminal of your supply) are plain steel and the electrolyte is either sodium carbonate (i.e. washing soda) or ammonium chloride solution. The latter has a more powerful stripping action as it is more corrosive, but it is less good at degreasing.
When the process is in action with something like say a pair of chain adjusters in the plastic tank. You can see that the solution does become quite black and filthy looking, which must correspond to the parts getting cleaner.
The electrolytic cleaning process causes bubbles of gas to be formed on the parts and this is what does the scouring.