Throwing a whole tech stack at this problem...