I used Excel to make a budget. Then I set up direct deposit for my budgeted saving, a checking account for non-discretionary expenses (mortgage, etc.) and what's left over goes into a second checking account. If the second account runs out of money, I stop spending until my next payday.
I gather it's similar to the envelope system insofar as it controls spending, but my system gives me flexibility to spend more $ on ammo if I spend less % on food that week, for example. That flexibility within boundaries is what makes it work for me.