Every potluck has the same failure mode. You say "bring a dish to share," and somehow four people bring dessert, nobody brings a main, and there are enough chips to survive a small winter. It's not that your friends are careless. It's that "bring whatever" gives them no information, so they default to the easy thing. The fix isn't more nagging. It's a little structure up front.
Start with a headcount, not a dish list
Before you think about food at all, get a rough number of people. Everything else scales off it. Twelve people is three or four mains and a couple of sides. Forty people is a different animal. You don't need to be exact, you just need a target so the sign-up isn't open-ended.
If you can, collect the headcount in the same place people sign up to bring food. Splitting "are you coming?" and "what are you bringing?" into two separate messages is how you end up with two half-accurate lists.
Split the meal into categories with real counts
This is the whole trick. Instead of one open list, give people slots to claim inside categories, each with a target number:
- Mains (4 needed)
- Sides (6 needed)
- Salads (3 needed)
- Desserts (3 needed)
- Drinks & ice (3 needed)
- Paper goods, cups, serving spoons (2 needed)
Two things happen when you do this. People can see what's already covered, so they stop defaulting to dessert. And once a category hits its number, it's full, so the fifth would-be dessert person naturally drifts to sides. That single design choice prevents about 90% of potluck chaos.
Don't forget the unglamorous slots. Ice, cups, serving utensils, and trash bags are the things everyone assumes someone else has, which means nobody does.
Let people write in what they're bringing
Claiming "Sides" is good. Claiming "Sides: my mom's mac and cheese" is better. When people name the actual dish, you avoid the two-lasagna situation and folks with allergies can scan the list ahead of time. A single free-text field next to each slot does the job.
Send exactly one reminder
People sign up two weeks out and then life happens. A single reminder a day or two before, with what they said they'd bring, closes the gap between "I signed up" and "I remembered." More than one reminder and you're the annoying one. Fewer than one and you're plating store-bought cookies you bought as backup at 6pm.
The lazy-but-effective version
If you truly want to spend zero minutes on setup: state the categories right in your invite text ("we need 4 mains, 6 sides, 3 desserts, reply with which you'll cover"), then keep a running tally yourself. It works for a dozen people. Past that, the manual tally becomes the chore you were trying to avoid, and a sign-up that tracks counts for you pays for itself in one event.
Quick answers
How do you stop duplicate dishes? Categories with counts, plus a write-in field so people declare the specific dish. Visibility does most of the work.
How much food for a potluck? Roughly one to one-and-a-half dishes per family, tilted toward mains and sides. Set the category counts from your headcount instead of leaving it open.
Group chat or sign-up sheet? Group chat is fine up to about ten people. Beyond that, a sign-up that shows what's taken saves everyone from scrolling 60 messages to figure out if salad is covered.