Everyone's first waitlist is a spreadsheet, and there is nothing wrong with that. It costs nothing, it opens on any phone, and you can see the whole list at once. The trouble only starts when the list has more people than spots, or when two people want the same spot at the same time. A sheet records; it does not decide.
What the spreadsheet does well
It holds the data. Names, phones, notes, a column for who showed up. You can sort it, filter it, share it with the person working the door, and chart it afterwards. If your list is a dozen regulars and you are the only one editing it, the sheet is the right tool and you should keep it.
Where it stops being a line
A line has rules a spreadsheet cannot enforce: only one person gets number 12, the list stops at the cap, and tomorrow's list starts empty. In a sheet, each of those is a habit someone has to keep. When the habit slips, it slips on the busy day.
| Feature | Unwaited | A spreadsheet |
|---|---|---|
| Price | Free for 100 signups a month; $5 and $15 plans above that | Free with the account you already have |
| Capacity cap | Per day, week, month, or in total; the form stops at the cap | None; someone watches the row count |
| Position number | Assigned under a database lock; each person sees "You're #12" | The row number, if nobody sorts or deletes |
| Two people at once | One gets the spot; the other sees the next one or a full message | Last edit wins; a form feeding the sheet has the same race |
| Opening hours | Weekdays plus open and close times, including overnight windows | None; you share or unshare the link by hand |
| Daily reset | The count starts over at the time you pick, in your time zone | A new tab, or someone clears the old one |
| Time slots with caps | A slot field with a cap per option; full slots grey out | A column you scan by eye |
| Duplicate emails | Rejected; the person sees their existing number | Whatever you catch |
| How people join | Hosted page, QR code, script embed, iframe, or JSON API | A shared edit link, or a form in front of the sheet |
| Your data | CSV export any time, email per signup, webhooks on paid plans | It already is the sheet |
The race is the one people underestimate. Put a form in front of the sheet and two submissions at 6:00:01 PM both become rows. There is no moment where the sheet checks the count before accepting the next row. Unwaited assigns the position and checks the capacity in one database operation under a row lock, so the second person sees the next number, or the full message, and never a duplicate.
The reset is the quiet one. A daily list needs a fresh count every morning. In a sheet, that is a new tab or a cleared range, done by a person, at roughly the right time. In Unwaited it happens at the minute you set, in your time zone, whether you are awake or not.
The recipes that replace it
These are the two lists most often kept on a sheet and a clipboard: a walk-in restaurant and a barbershop. Each is a ready-made waitlist with the cap, the reset time, the opening hours, and the fields already set.
Restaurants
RecipeTonight's counter
10 per day
10 seats per day. The count resets at 5:00 AM in your time zone.
- 10 per day
- Tue, Wed, Thu, Fri, Sat 6 AM–12 PM
- 4 fields
Barbershops
RecipeWalk-ins
12 per day
12 walk-ins per day. The count resets at 8:00 AM.
- 12 per day
- Tue, Wed, Thu, Fri, Sat 8 AM–5 PM
- 4 fields
What you give up
Formulas, charts, and the freedom to type anything into any cell. Unwaited is a form with a count, not a grid. The data still comes out as CSV whenever you want it, and paid plans can push every signup into a sheet through a webhook, so most people end up with both: the line runs on Unwaited and the bookkeeping stays where it was.