diff --git a/docs/composedb/create-ceramic-app.mdx b/docs/composedb/create-ceramic-app.mdx
index 090b4ff3..440979af 100644
--- a/docs/composedb/create-ceramic-app.mdx
+++ b/docs/composedb/create-ceramic-app.mdx
@@ -5,12 +5,43 @@ import TabItem from "@theme/TabItem";
Get up and running quickly with a basic ComposeDB application with one command.
+---
+
**Prerequisites**
- Operating system: **Linux, Mac, or Windows** (only [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install))
- **Node.js v20** - If you are using a different version, please use `nvm` to install Node.js v20 for best results.
- **npm v10** - Installed automatically with NodeJS v20
+You will also need to run a ceramic-one node in the background which provides Ceramic
+data network access. To set it up, follow the steps below:
+
+:::note
+The instructions below cover the steps for the MacOS-based systems. If you are running on a Linux-based system, you can find the
+instructions [here](https://github.com/ceramicnetwork/rust-ceramic?tab=readme-ov-file#linux---debian-based-distributions).
+:::
+
+1. Install the component using [Homebrew](https://brew.sh/):
+
+```bash
+brew install ceramicnetwork/tap/ceramic-one
+```
+
+2. Start the `ceramic-one` using the following command:
+```bash
+ceramic-one daemon --network in-memory
+```
+
+:::note
+By default, the command above will spin off a node which connects to a `in-memory`. You can change this behaviour by providing a `--network` flag and specifying a network of your choice. For example:
+
+```ceramic-one daemon --network testnet-clay```
+:::
+
+---
+
+## Start the ComposeDB example app
+
You can easily create a simple ComposeDB starter project by using our CLI and running the following command:
+ +
## Core Components --- -The Ceramic protocol consists of the following components: +The Ceramic protocol consists of the following core components if playing an important role in the functionality and the decentralization of the network: - [**Streams →**](../protocol/js-ceramic/streams/streams-index) - [**Accounts →**](../protocol/js-ceramic/accounts/accounts-index.md) @@ -17,37 +22,23 @@ The Ceramic protocol consists of the following components: - [**Ceramic Nodes →**](../protocol/js-ceramic/nodes/overview.md) -## Specification Status +## Ceramic Nodes + +--- +Developers, building on Ceramic have to run a Ceramic node to provide data storage, compute, and bandwidth for their Ceramic application. Today there are no tokenized incentives for running a Ceramic node, but by running a node you can ensure the data for your app remains available while helping contribute to the network's decentralization. There are a few different ways of how you can run a Ceramic node: + +- [**Run Ceramic in the cloud**](../protocol/js-ceramic/guides/ceramic-nodes/running-cloud) + +- [**Run Ceramic locally**](../protocol/js-ceramic/guides/ceramic-nodes/running-locally) + +- [**Use one of the managed node solutions built by the Ceramic community**](https://hirenodes.io/) + +## Database products built on ceramic --- +Ceramic enables a number of database products that process and index data in various ways. Today, developers can already interact with the following existing solutions and build new ones: -| Section | State | -| --- | --- | -| [1. Streams](../protocol/js-ceramic/streams/streams-index) | **[Draft/WIP](../protocol/js-ceramic/streams/streams-index)** | -| [1.1. Event Log](../protocol/js-ceramic/streams/event-log) | **[Reliable](../protocol/js-ceramic/streams/event-log)** | -| [1.2. URI Scheme](../protocol/js-ceramic/streams/uri-scheme) | **[Reliable](../protocol/js-ceramic/streams/uri-scheme)** | -| [1.3. Consensus](../protocol/js-ceramic/streams/consensus) | **[Draft/WIP](../protocol/js-ceramic/streams/consensus)** | -| [1.4. Lifecycle](../protocol/js-ceramic/streams/lifecycle) | **[Reliable](../protocol/js-ceramic/streams/lifecycle)** | -| [2. Accounts](../protocol/js-ceramic/accounts/accounts-index) | **[Draft/WIP](../protocol/js-ceramic/accounts/accounts-index)** | -| [2.1. Decentralized Identifiers](../protocol/js-ceramic/accounts/decentralized-identifiers) | **[Draft/WIP](../protocol/js-ceramic/accounts/decentralized-identifiers)** | -| [2.2. Authorizations](../protocol/js-ceramic/accounts/authorizations) | **[Reliable](../protocol/js-ceramic/accounts/authorizations)** | -| [2.3. Object-Capabilities](../protocol/js-ceramic/accounts/object-capabilities) | **[Draft/WIP](../protocol/js-ceramic/accounts/object-capabilities)** | -| [3. Networking](../protocol/js-ceramic/networking/networking-index) | **[Draft/WIP](../protocol/js-ceramic/networking/networking-index)** | -| [3.1. Tip Gossip](../protocol/js-ceramic/networking/tip-gossip) | **[Reliable](../protocol/js-ceramic/networking/tip-gossip)** | -| [3.2. Tip Queries](../protocol/js-ceramic/networking/tip-queries) | **[Reliable](../protocol/js-ceramic/networking/tip-queries)** | -| [3.3. Event Fetching](../protocol/js-ceramic/networking/event-fetching) | **[Reliable](../protocol/js-ceramic/networking/event-fetching)** | -| [3.4. Network Identifiers](../protocol/js-ceramic/networking/networks) | **[Reliable](../protocol/js-ceramic/networking/networks)** | -| [4. API](../protocol/js-ceramic/api) | **[Missing](../protocol/js-ceramic/api)** | -| [5. Nodes](../protocol/js-ceramic/nodes/overview) | **[Draft/WIP](../protocol/js-ceramic/nodes/overview)** | - -#### **Legend** - -| Spec state | Label | -| --- | --- | -| Unlikely to change in the foreseeable future. | **Stable** | -| All content is correct. Important details are covered. | **Reliable** | -| All content is correct. Details are being worked on. | **Draft/WIP** | -| Do not follow. Important things have changed. | **Incorrect** | -| No work has been done yet. | **Missing** | +- [**OrbisDB**](./orbisdb-overview.md) - a database built on Ceramic that allows you to easily interact with the data stored on Ceramic using a simple and familiar SQL-based interface. +- [**ComposeDB**](./composedb-overview.md) - a composable grapqh database built on Ceramic. diff --git a/docs/introduction/why-ceramic.md b/docs/introduction/why-ceramic.md index accaee8a..71862740 100644 --- a/docs/introduction/why-ceramic.md +++ b/docs/introduction/why-ceramic.md @@ -2,8 +2,21 @@ --- +Ceramic is a distributed event sourcing and storage system that applications can use to store high volume user and application data, manage documents and content, and construct activity logs and databases. +It adds trust to data at scale, offering faster, cheaper and higher throughput than a blockchain. + Ceramic's decentralized data network provides Web3 developers with a collection of features that make it possible to build scalable Web3 applications with composable data that can be reused and shared across applications. + + +## What Ceramic is for? + +Ceramic enables organizations facing these common data challenges: +- Publish credentials, logs or other data without painful gas fees +- Manage rich user and behavioral data without compromising user privacy +- Store high-throughput machine data from sensors, agents, and network nodes +- Build new verifiable data products and pipelines on a battle-tested event sourcing system + ## Overview Ceramic compared to other popular Web3 infrastructure solutions. @@ -22,18 +35,20 @@ Ceramic compared to other popular Web3 infrastructure solutions. ## Key Benefits --- +### Speed and Scalability +Ceramic's data network infrastructure is highly-scalable and can service use cases where high amounts of data throughput is needed. On Ceramic, every data object maintains its own state and nodes independently process stream transactions, allowing unbounded parallelization. This enables Ceramic to operate at worldwide data scale, which is orders of magnitude greater than the scale needed for decentralized finance. + -### Mutable data storage +### Mutable data storage Ceramic provides developers with a set of standard, open APIs for storing, updating, and retrieving data from the network. This helps to break down data silos, enabling all data to be openly accessible. Additionally, all data mutations on Ceramic are cryptographically verifiable and can provide auditability throughout all historical versions of a piece of data that has changed over time. ### Data Composability -Data on Ceramic is structured and stored in data models, which can be easily reused by different applications to share -data between them. Data models are created by developers in the community, and the ecosystem of data models is constantly expanding. Data models typically represent a single, logical application feature such as a user profile, a social graph, or a blog and developers typically combine multiple data models to create their application. +Data on Ceramic is structured and stored in data models, which can be easily reused by different applications to share data between them. Data models are created by developers in the community, and the ecosystem of data models is constantly expanding. Data models typically represent a single, logical application feature such as a user profile, a social graph, or a blog and developers typically combine multiple data models to create their application. -### Developer Experience +### Collaborative Developer Experience -Building composable applications with Web3 data on Ceramic is simple. Install Ceramic, browse the marketplace of data models, plug these models into your app, and automatically get access to all data stored on the network that conforms to those data models. The community is constantly creating new tooling that make it easier to build, and expand what's possible with composable data. +Building composable applications with Web3 data on Ceramic is simple. Install Ceramic, browse available models, plug them into your app, and automatically get access to all data stored on the network that conforms to those data models. The community is constantly creating new tooling that make it easier to build, and expand what's possible with composable data. ### Sign in with Web3 @@ -43,6 +58,3 @@ Ceramic uses the decentralized identifier (DID) standard for user accounts, whic The Ceramic network is decentralized and permissionless, allowing anyone in the world to spin up a node to provide storage, compute, and bandwidth resources to users and applications built on the network. Today there are no tokenized incentives for running Ceramic, but the community is exploring options. -### Scalability - -Ceramic's data network infrastructure is highly-scalable and can service use cases where high amounts of data throughput is needed. On Ceramic, every data object maintains its own state and nodes independently process stream transactions, allowing unbounded parallelization. This enables Ceramic to operate at worldwide data scale, which is orders of magnitude greater than the scale needed for decentralized finance. \ No newline at end of file diff --git a/docs/orbisdb/orbisdb-sdk.md b/docs/orbisdb/orbisdb-sdk.md index 7b8cc664..d0ef315c 100644 --- a/docs/orbisdb/orbisdb-sdk.md +++ b/docs/orbisdb/orbisdb-sdk.md @@ -4,5 +4,5 @@ OrbisDB comes with an [OrbisDB SDK](https://github.com/OrbisWeb3/db-sdk) which m OrbisDB SDK is a client-side complement to OrbisDB - a decentralized database built on top of Ceramic. It enables simple user authentication and provides necessary methods to manipulate the data. -Head to the [OrbisDB SDK Github repository](https://github.com/OrbisWeb3/db-sdk) to start interacting with OrbisDB SDK. +Head to the [Orbis documentation](https://github.com/OrbisWeb3/db-sdk) to learn more and start interacting with OrbisDB SDK. diff --git a/docs/orbisdb/overview.md b/docs/orbisdb/overview.md index 41623b3b..6ed39335 100644 --- a/docs/orbisdb/overview.md +++ b/docs/orbisdb/overview.md @@ -4,7 +4,7 @@ ### How to get started? -OrbisDB comes with an easy-to-use shared instance called [Orbis Studio](https://app.formo.so/orbisdb-access-hJ5VGyugmGigyVFyqdHJa) which provides developers with a user-friendly interface to start interacting with data stored on Ceramic and use a library of available plugins right away without worrying about managing the backend requirements. [**Get access to Orbis Studio in closed beta and start building using OrbisDB**](https://app.formo.so/orbisdb-access-hJ5VGyugmGigyVFyqdHJa). +OrbisDB comes with an easy-to-use shared instance called [Orbis Studio](https://studio.useorbis.com/) which provides developers with a user-friendly interface to start interacting with data stored on Ceramic and use a library of available plugins right away without worrying about managing the backend requirements. diff --git a/docs/protocol/js-ceramic/overview.md b/docs/protocol/js-ceramic/overview.md index 23fec27b..824b3827 100644 --- a/docs/protocol/js-ceramic/overview.md +++ b/docs/protocol/js-ceramic/overview.md @@ -13,6 +13,11 @@ The latest release of Ceramic has introduced a new Rust-based implementation of The protocol doesn't prescribe how to interpret events found within streams; this is left to the applications consuming the streams. Some examples of this type of application are: -- [OrbisDB](https://useorbis.com/) +- [OrbisDB](../../orbisdb/overview.md) - [ComposeDB](../../composedb/getting-started) + + + + + diff --git a/docs/wheel/wheel-reference.mdx b/docs/wheel/wheel-reference.mdx index 3e01390b..20071fcf 100644 --- a/docs/wheel/wheel-reference.mdx +++ b/docs/wheel/wheel-reference.mdx @@ -108,13 +108,13 @@ An option to start your Ceramic daemon which will spin up the node using the Cer This section dives deeper into the Ceramic parameters you can configure when you choose `Advanced: Configure all ceramic options` option in your wheel prompt. -### Bundled or Remote IPFS +### Remote or Bundlesd IPFS An option to define if IFPS runs in the same compute process as Ceramic. You have two options to choose from: -- Bundled - IPFS running in same compute process as Ceramic; recommended for early prototyping. -- Remote - IPFS running in separate compute process; recommended for production and everything besides early prototyping. - This assumes that you have the IPFS process setup and can provide an IPFS Hostname. +- Remote - IPFS running in separate compute process; recommended for all Ceramic versions that use `ceramic-one`. This configuration requires an IPFS Hostname. Default value is `http://localhost:5101` +- Bundled - IPFS running in same compute process as Ceramic; used only with older Ceramic versions that use Kubo. + ### State Store diff --git a/docusaurus.config.ts b/docusaurus.config.ts index f4cfbf83..60e442a2 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -422,7 +422,7 @@ const config: Config = { }, items: [ { - to: "docs/introduction/intro", + to: "docs/introduction/why-ceramic", label: "Introduction" }, { diff --git a/sidebars.ts b/sidebars.ts index fa299d2a..fdcdd224 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -17,12 +17,9 @@ const sidebars: SidebarsConfig = { { type: "doc", id: "introduction/why-ceramic", label: "Why Ceramic?" }, { type: "category", + collapsible: true, collapsed: false, label: "Overview", - link: { - type: "doc", - id: "introduction/intro" - }, items: [ { type: "doc", id: "introduction/protocol-overview", label: "Ceramic Protocol" }, { type: "doc", id: "introduction/orbisdb-overview", label: "OrbisDB" }, diff --git a/src/components/homepage/get-started.js b/src/components/homepage/get-started.js index 802720af..cbe1ed4a 100644 --- a/src/components/homepage/get-started.js +++ b/src/components/homepage/get-started.js @@ -13,7 +13,7 @@ const FeatureList = [ ] }, { - title: "ComposeDB Sandbox →", + title: "Sandbox →", items: [ { url: "docs/composedb/sandbox", diff --git a/src/components/homepage/start-building.js b/src/components/homepage/start-building.js index 4314dbf9..fea91759 100644 --- a/src/components/homepage/start-building.js +++ b/src/components/homepage/start-building.js @@ -22,9 +22,9 @@ const FeatureList = [ ] }, { - title: "ComposeDB →", + title: "Interact with Event Store SDK →", items: [ - { url: "docs/composedb/getting-started", text: "Build composable dApps using a decentralised graph database." } + { url: "docs/composedb/getting-started", text: "Interact with Event Store's primitive APIs" } ] } ]; diff --git a/src/pages/index.js b/src/pages/index.js index d2aea54b..68bae87c 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -65,9 +65,9 @@ export default function Home() { background: "linear-gradient(215deg, #660094 -33%, var(--box-color) 50%)" }} > -