A mix I would say... create software for clients in freelance mode is a good way to gather some money, pay the bills etc..
But in the long time you'll like to have something that works for you while you sleep. You can always invest your money in a high interest fund or even consider real estate. that would put your money to work.
I tell you this because as developers we usually miss the big picture and forgot that there are other ways of winning money.
The more exciting of course is programming, I would suggest services(services as a page where your users subscribe for a monthly fee, not selling your time in Freelance mode) over products. even a product need to be sell one and again, and you'll end up spending more time looking for costumers than programming.
In a service, as long as they are satisfied, the clients just keep paying the monthly fee.
You of course must be alert all the time to go ahead of their necessities and programming new things all the time (you don't want to play the Hare in the Turtle and the Hare tale).
But that's just me, a friend of mine pay his university selling a Point Of Sale he made in a local commercial area.