Having made them for 10 years, on this question I AM an expert.
First thing you need is a good roll. Amoroso’s is the gold standard in this regard, although it is possible to get a close approximation. It must be no older than one day so you have that characteristic fresh staleness (anyone who’s had one knows exactly what I mean).
Next, the beef. What we used to do was get rib blade meat, line up the grain, freeze it solid overnight in 25 pound blocks, then let it defrost so it could be cut on a deli slicer. In a pinch we used a round roast, but that made the beef shave off in solid sheets rather than fragments, and therefore a bit tougher to break up and a bit tougher to cook. Have it cut just a bit thicker than your average prosciutto, maybe about as thick as turkey. If you pull on it it should come apart with ease.
Onions. Get some big onions and dice them. They don’t have to be fine, but you do want them small. Sweet peppers (bulk out of a jar in sweet brine), hot peppers (crushed cherry peppers), mushrooms (they must be fresh, not canned), and sauce (Don Pepino’s is the gold standard for sauce) are optional, but some prefer them. I do not.
So what you do is get a stovetop griddle (cast iron, like $25 at Wal-Mart), put down some 10% olive oil, saute the onions, then push them aside. You want them to burn on the bottom, because the ones on top will caramelize. Next, put the beef on the grill. Take a spatula (like a burger spatula, not that cheeseball plastic one you have in your drawer) and, take my word for it, a wide putty knife. Break the beef up until it gets really small. Just before the beef is finished add the onions off the top of your onion pile (and any of the other stuff minus the sauce).
Now here’s where it gets tricky, if you want to do it right. It took me years to perfect my technique, and I do it with some flair. Anyway, what you have to do is cut the roll along its length with the curved side being the side to cut. Squeeze the ends to break them just a little bit (don’t butterfly it when you cut it). Spread it out, place it and your spatula at a 45 degree angle to each other with the beef and onions lined up 90 degrees in front of you (think of an arrow pointing directly away from you and that’s about the relative positions of the stuff.
Drag the roll over the beef, at the same time forcing the spatula underneath. If you’ve done it right you’ll only have to do it once and everything will fit perfectly.
Now, flip it over and you have a steak. What’s missing? Cheese. If you want “authenticity”, use Cheez Whiz. There is no substitute. Melt it up and apply it with a cake frosting knife. If you want American use White American (purely an aesthetic touch) , or use Provolone if you prefer. Put three pieces of cheese on top, then place it back down on the grill. After it starts to melt, just pick it back up as you did before. If you want sauce, add it now.
Voila! In addition to an absolutely awesome cheesesteak, you will also have a monster mess. Good luck with that. I’ve done my share of cleaning, the rest is up to you.
Or you could just come to Harrisburg PA and I’ll do it for you. The ones you actually get in Philly are overrated, it’s the ambience of it that’s the novelty. Once you learn how to make it you can make them good anywhere, no matter how much people try to claim that nobody beats Pat’s or Jim’s. I dog them both in my not so humble opinion, and anyone who’s ever tried one that I made has raved about it.