Think Thieves
Time: 2024
Type: personal
← Back to homeTime: 2024
Type: personal
← Back to homeThink Thieves is a re-imagining of the official 100 Thieves website, designed to place a greater emphasis on the organization's esports teams and content creators. While the original site focuses heavily on the broader 100 Thieves brand, I wanted to create an experience that put the organization's competitive teams and live content at the forefront.




The application provides users with information about upcoming esports matches and currently live streams in one centralized location. Match data is retrieved for 100 Thieves' VALORANT, League of Legends, and Call of Duty League teams, while live streams from 100 Thieves creators are surfaced from both Twitch and YouTube.
To keep the displayed information current, web scraping and APIs are used together. VALORANT match data is collected by scraping VLR.gg, while League of Legends and Call of Duty League match data is retrieved through the Liquipedia API. Live Twitch streams are retrieved through the Twitch API, while YouTube streams are identified by scraping the channels of creators who stream on the platform.
Because these data sources can be queried frequently, Redis is used to cache match and stream data and prevent unnecessary API requests and web scrapes. The Puppeteer-based scraper runs through an Express backend, while the frontend was built with React.
Building Think Thieves gave me hands-on experience working with external APIs, web scraping, caching strategies, and combining multiple data sources into a single application. It also strengthened my understanding of building a frontend around dynamic, frequently changing data rather than relying solely on a static backend dataset.
The project is a personal re-imagining rather than an official 100 Thieves product, and much of the imagery and copywriting was borrowed from the organization's official website for the purposes of the project.