I'll share what we did FWIW -- We set up an account for each kid at Schwab when they turned 10, and let them pick three individual stocks. They had fun researching various companies, and ended up with things like Hasbro, Disney, Hershey and so on. They were companies they could relate to. Then we watched what happened with the stocks for a year or two.
Then, as step two when they were about 12, we had them start investing in the Schwab 1000 index fund. Because they had the starting experience with a few individual stocks, they were able to understand what the 1000 index fund is -- that was a key learning point. Now all their investing money goes into the index fund. The Schwab accounts for kids are great because of their low start amount ($100 I think) and their low individual purchase amount ($1). And their fees are low.