I always found it easier to basically automate the process as much as possible. “spend” every recurring expenditure and also set aside the most aggressive savings/investments possible using separate bill pay and savings accounts or buckets. Everything is taken out of the main account as soon as your paycheck hits, so it means everything you see on your spending account is a free dollar that you can use for fun or food.
Some people might operate better with a set amount for groceries too, but I personally found that too restrictive.
A good budget is one that you stick to, helps you achieve your goals, and crucially, allows you to enjoy your life to at least some extent. Whatever method works for you, it’s important to give yourself permission to spend some money on fun. However small.