Crowded Yet?

Overview

Crowded Yet tracks how busy spaces on University campuses are using real-time sensor data. Over 5,000 users and 30,000 visits in 4 days before facing legal action to shut it down.

Timeline

I was scrolling through (Twitter) instead of studying for exams and came across a tweet from @elgrasel, co-founder of Occuspace, encouraging developers to use Waitz.

Occuspace installs sensors in buildings for corporations to analyze how spaces are used. Universities across North America contract Occuspace to installs sensors in their libraries, gyms, and cafeterias. Occuspace owns Waitz, an app meant for students to see how busy spaces are. I personally hated going to the library not knowing how busy it would be, so I was interested.

Problems: The app is terrible, no one knows about it, and schools don’t advertise it. After some digging around, I saw that Waitz exposed their API publicly, so I built https://www.crowdedyet.com for myself. A way to see how busy spots on campus were with a not-bad UI (+ on the web and open source). I made sure to give full credit to Occuspace and Waitz for the data.

I posted the project on Reddit anonymously, and people liked it (40k total views, 200 shares). Within 2 days, the site had 3k users and 10k page visits. Walking on campus and seeing someone use the site for the first time was an insane dopamine hit.

Uh oh

A few days after launch, a UW library staff member forked the project. Optimistically I thought he would reach out to see how we can get more students to use the tool.

Fork notification

At 5k users and 30k visits, I get a cease-and-desist e-mail from someone at Occuspace (e-mail is posted on https://www.crowdedyet.com). Apparently I violated a bunch of Terms of Use, which makes sense, but maybe don’t expose your API for everyone to use and encourage development on the tool 🙃

I ignored the e-mail and was planning to respond on the very last day possible to keep the site up during the exam period. I then received a follow up e-mail (this one a little more scary), and my access to the API had been shut off. I complied and removed all access to their API.

While all of this was happening, my school posted this blog promoting Waitz on campus. They’ve never mentioned it before, which makes me believe UW staff reported me 🕵️

Blog Post

Fast forward a couple months and I see this on the main floor of a library on my campus.

That UI looks awfully familiar!

Reflection

I don’t care for credit (I acknowledge that me saying I don’t care for credit implies that I technically care about credit, but oh well). After all I was just a wrapper of an API, and the school wrapped my wrapper (and then unwrapped me).

Maybe if we communicated things could have turned out differently. I’m honestly glad more people have access to this information, and if getting legal threats in the middle of exams is what it took for the school to act fast enough, then that’s a win.

Now I have a cool story to tell while waiting for the elevators at Dana Porter!

Learnings

If you want to build a project, build something you would use. Being your own customer 10x’s the iteration speed. Chances are if you would use it, someone else would too.

Features

Users can could see every school (38) offered on the main page, see overall busyness for each building on campus, see busyness on a per-floor basis.

Technical Implementation

Frontend

  • Language: TypeScript
  • Framework: Next.js
  • Styling: Shadcn UI

Backend

  • Server: Next.js