Writing

Recreating DoorDash for my Dorm

The Pitch

My favorite part of living in a dorm is how it incentivizes a dialectical transformation of individual labor into social labor. Or put more simply: people working together. At Stanford, that can look like the DAHA channel in our dorm WhatsApp, or someone baking cookies for the dorm. There’s an incentive to work together as a collective, saving people time and money.

Often, this means sharing subscriptions. I’ve paid for Target Circle for the past few months, because it gives free delivery for orders over $35. Combined with the Target Circle debit card, this service means I can get anything from target delivered to the dorm for free. Since I’ve moved in, I’ve slowly needed to order less things. However, the dorm hasn’t. It seems like there’s a constant need for snacks, pillows, and toiletries. To fight the inefficiency of a bunch of people placing separate orders, I decided to build a system that allowed everyone to aggregate their orders. Introducing DonnerDash.

The Service

At its core, DonnerDash is fundamentally an extension of the philosophy that if you want people to use your service, you shouldn’t send them a Google Form. Instead of having users fill in price information and contact me to order something, it automates most of that process. From the user side, they just have to put in a URL, and send a Venmo. The system handles the rest:

Obviously, this is a bit more complicated than it seems. First, the user has to login with their Stanford email. Google is nice enough to automatically redirect to SSO when you include the ?hd url, so the user never actually sees a google login screen, but I have the benefits of using Google for OAuth (notably, their session times are MUCH longer than Stanford’ssbuilt-in SSO). It’s also much easier to implement – I use Supabase for almost all of my Stanford projects, and it never takes me more than 5 minutes to get auth up and running.

Next, the user has to select their Target URL and click add. After this happens, the row is added to the database as “pending.” A few seconds later, a Puppeteer instance running on my Mac Mini (the one running my meal plan scraper) logs onto the Target website and grabs the price information. This is intentionally done from a computer in my dorm, rather than something on an AWS server. This traffic is not unusual, but I’ve noticed the Target app is fairly good about blocking access when using a VPN – this blocklist probably includes the Hetzner data centers I would use otherwise.

Once Puppeteer has the price information, it updates the database row, and the user can see the price. Now things move into the manual realm. I have to collect payment from the user before I add the item to the group cart, to prevent people from ordering a TV and then not paying. This is done via 5-6 different payment methods – most commonly Zelle, then Venmo. I even take Crypto! Once the user has payed, I update their item on the Admin dashboard.

The names here are obviously real. Shoutout to Lance for the snack selection.

Once $35 is in the group cart, I place the order, and it arrives a few hours later! One benefit of limiting this to our dorm is that I can do deliveries – I have a database of emails and room numbers, so I can display the user’s room number next to their name in the admin table. This makes it very easy to give users their order, and means the entire process is seamless. Other than pasting the URL from the target website, the user never interacts with any delivery service. They simply add it to the site, send a Venmo, and it arrives to their door.

Does this Scale?

No, but kind of maybe? At Stanford, we have a service called Ekatree which does batch deliveries from local restaurants with no fees. If you’re craving Indian, you can order Zareen’s (an excellent Indian/Pakistani restaurant) and it shows up an hour later, on the hour. Ekatree brings business to these restaurants, and in exchange, Students get free delivery. It’s a win-win.

I can see a service like this being successful for students. I can imagine a daily run to local stores (i.e. Walmart or Target) with a flat fee (5%) being very popular among students, although they would have to go and pick it up. Would I want to run this service? Absolutely not. Bundle orders make a lot of sense, but they’re also time consuming, and lead to the kind of problems large companies solve with individual gig work. The reality is that companies like Target aren’t interested in working with Universities the same way that local restaurants are, and so students are stuck with their DoorDash+ subscriptions, and UberEats delivery fees.

Or, you can live in Donner. The best dorm. Sorry!