What would you need to create a scalable website? What would be the key building blocks for it?
A scalable website is one that can handle large amounts of traffic, data, and users without compromising on performance and reliability. Here are some key components that are essential for building a scalable website:

1. Cloud infrastructure: You'll need a robust cloud infrastructure like _AWS_, _Azure_, or _Google Cloud Platform_ that allows you to easily scale up or down as needed. This would include serverless functions, auto-scaling groups, and database clusters that can be easily configured and managed using cloud platforms.
2. NoSQL database: The traditional relational database is not always the best choice for scalable web applications. Instead, you may want to use a NoSQL database like _MongoDB_, _Cassandra_, or _CouchDB_ that can handle large volumes of unstructured data and scale horizontally as needed.
3. Load balancing: This is essential for distributing the load across multiple servers and ensuring that no single node becomes a bottleneck. You can use load balancers like _NGINX_, _HAProxy_, or _Apache_ that can direct traffic to the servers that have the least amount of workload.
4. Caching: Caching plays an important role in reducing the load on your database and backend servers. You can use cache systems like _Redis_, _Memcached_, or _Couchbase_ to store frequently accessed data and retrieve it quickly without hitting your database.
5. Monitoring and logging: You'll need a robust monitoring and logging system that can track the performance and usage of your application. This will help you identify any potential bottlenecks or issues before they become critical.
6. Containerization: Containerization allows you to package your application in a standardized format that can be deployed across multiple servers and platforms. You can use container management systems like _Docker_ or _Kubernetes_ to manage and orchestrate your containers.
7. Version control: Version control is an essential component of any development process. You can use tools like _Git_ or _Mercurial_ to create and manage your codebase, track changes, and collaborate with your team members.

These are the key components that you should have in place to build a scalable website. However, it's important to keep in mind that there's no single formula for building a scalable and reliable web application. The best approach will depend on your specific needs and requirements.