https://scratch.mit.edu/projects/1368840371/ I made a concept for servers hosted by Scratch users. It should be uploaded to a new project now. It's currently available on my profile. ----- OLD DESCRIPTION: This is a concept I had for a server where players can add and retrieve data by connecting to a host. This means that instead of containing cloud information inside of cloud variables, the information is stored on (for example) my computer, and other Scratchers can add, remove, and see data by fetching it through cloud functions. It's not necessarily the most efficient method for multiple reasons, but it's still interesting to think about. Why would it be inefficient? Here are a few reasons: - There would be a lot of server downtime (multiple hours a day). When the host's computer is shut down, any server-related functions would be disabled. - Before shutting their computer down, the host would need to manually archive all of the server's data. It's not necessarily difficult, but it could be time consuming. - Power outages will cause data loss, since the host's computer shutdown unexpectedly. - It depends a lot on Scratch's cloud availability. If Scratch cloud servers are down, then there's no way to connect to the host computer. - Requests would be limited to Scratch's cloud variable caps. For example, the length of data sent to the server would need to be capped. Plus, data would need to either be encoded or only be in numbers in the first place. Also, you can only send and receive the data at Scratch's cloud variable update rate (roughly 10 times a second at most). Lastly, if multiple people use it, they can overwrite each other's data (intentionally or unintentionally). - There's no way to easily transfer data from this project to another one. For example, if you're trying to run a database for a game, you'd need your own remix of this project that you create the game in, and that remix would need its own host. - There are so many other factors and room for failure, but I still think the concept is cool.