We have a shared Google spreadsheet with about ten week's worth of dinners and links to recipes. Each weeks' menu is broken down into what to have each day of the week as I need easy meals some days due to having kids but also want a balanced diet so have some veggie, meat, fish etc. I batch cook for some of these days and can then allocate a random "freezer dinner" once a week. The spreadsheet means that I only need to do top up shops for milk, bread etc. I usually shop for a fortnight's groceries at a time so I simply filter two weeks that I fancy and then do my shop online. I tried doing weekly shop but found that I'm actually not that much more for a fortnight shop so just opt for that instead.
Sorry, for the essay ^^^ ! In terms of a list, we use Google Keep and have a shared "To Buy" list which we just add to. I look at that if I'm going in for a top up shop and also just prior to doing the online shop. We found Lidl to be the best in terms of price but they don't do online shopping (and that is much easier with two kids under three years) so it's Tesco for us too.