3Box is equally compatible with applications that utilize smart contacts and those that don't. If you have an existing smart contract based application, 3Box provides a convenient solution for decentralized user profiles, off-chain database storage, and messaging threads, as well as various UI plugins to speed up development.
Alternatively, 3Box can be used to build a decentralized application that does not use a smart contract at all, but instead leverages our SDKs, APIs, and plugins to add decentralized profiles, public or encrypted database storage, and messaging functionality. Think Slack, Medium, Facebook, or Twitter... but decentralized.
Furthermore, 3Box is blockchain agnostic in its design, and we are likely to integrate other blockchain platforms as they generate adoption.
Underneath the hood, profiles and spaces do function similarly. Both offer the option to store data publicly or privately in OrbitDB key-value database stores. However, profiles were created to store data across applications, similar to gravatar, whereas spaces were designed with specific application (or a part of an application) use cases in mind.
Spaces are great for storing and accessing context specific data in a sandboxed environment, such as app settings and defaults, app-specific content, sensitive information, etc. This data might not be appropriate to store in profiles, where it would more easily be available to all apps.
As a general rule of thumb, only use profiles for data which will be useful across applications, such global avatars, or linked verified accounts. Everything else should go into spaces. For more information about spaces and profiles, visit our docs and GitHub readmes.
3Box has been designed not to require the use of a server, but both 3Box.js and IdentityWallet can be used in a Node.js environment if required.
3Box does not use the Ethereum blockchain directly since all data and interactions are off-chain, however your users will need an Ethereum wallet, or wallet-enabled browser, to authenticate their data. Users who do not wish to handle private key pneumonics directly can use a simplified key management provider like Fortmatic or Portis. We are exploring integrating a password login system directly into 3Box, removing the need for an Ethereum address altogether.
All 3Box functionality occurs off-chain on the peer to peer web, so no gas is required to use 3Box. However if an application that uses 3Box also uses Ethereum, then users would need gas just as they would on any Ethereum app.