A bucket list SPA!  Were you expecting something different?  Using MS stack.