diff --git a/.cspell.json b/.cspell.json index e9e5dc6..d9707e0 100644 --- a/.cspell.json +++ b/.cspell.json @@ -80,6 +80,7 @@ "baarerstrasse", "FDPIC", "IPFS", + "cheatsheet" ], "flagWords": [], "ignorePaths": [ diff --git a/docs/guides/getting-started.md b/docs/guides/getting-started.md index c6cb372..119d6ac 100644 --- a/docs/guides/getting-started.md +++ b/docs/guides/getting-started.md @@ -1,53 +1,76 @@ --- -title: Getting Started +title: Introduction to Waku hide_table_of_contents: true slug: / --- -:::caution -Waku has risks and limitations as it is still developing and preparing for extensive adoption. However, it is already demonstrating its capabilities by powering various applications. [Join our community](https://waku.org/community/) to stay updated on our progress. +Waku is a family of robust, censorship-resistant, peer-to-peer communication protocols that enable privacy-focused messaging for Web3 applications, allowing you to integrate decentralised communication features into your dApp without compromising security or privacy. + +```mermaid +graph LR + S1(Message Sender 1) -->|Message 1| W(The Waku Network) + S2(Message Sender 2) -->|Message 2| W + S3(Message Sender 3) -->|Message 3| W + W -->|Message 1| R1(Message Receiver 1) + W -->|Message 2| R1 + W -->|Message 3| R2(Message Receiver 2) +``` + + + +:::tip +Check out our [Learn section](/learn/waku-network), [YouTube Channel](https://www.youtube.com/@wakuorg), and [Blog](https://blog.waku.org/) to dive into how Waku works behind the scenes! ::: -Ready to integrate Waku into your application for private, secure, censorship-free communication? Explore the available SDKs and contribute by running a node. +## What isn’t Waku? -## Run a Waku node +- Waku is not a blockchain but a network composed of protocols designed for Web3 communication, operating without the need for gas fees. +- Waku is not just for messaging applications; it supports the development of complex applications that require secure and private data transmission. +- Waku is not a long-term data storage network; it focuses on short, ephemeral, real-time messaging. -The Waku Network is a decentralised, permissionless system where anyone can run nodes, use the network, and contribute to its support. +## What can Waku be used for? -| | Description | Documentation | -| - | - | - | -| [nwaku](https://github.com/waku-org/nwaku) | Nim-based Waku implementation to run a standalone node and access the network | [Run a Nwaku Node](/guides/nwaku/run-node) | -| [nwaku-compose](https://github.com/waku-org/nwaku-compose) | Pre-configured Docker Compose setup for running a RLN-enabled `nwaku` node with Grafana metrics dashboard (recommended) | [Run Nwaku with Docker Compose](/guides/nwaku/run-docker-compose) | -| [go-waku](https://github.com/waku-org/go-waku) | Golang-based Waku implementation to run a standalone node and access the network | COMING SOON | +1. **Chat Messengers**: Waku can be used to build private, decentralised chat apps resistant to censorship. +2. **Voting and Proposals**: Exchange votes on proposals off-chain via Waku to save gas fees, then submit aggregated results to the blockchain. +3. **NFT Marketplaces**: Use Waku to handle off-chain NFT bids and offers for gas savings, and to integrate social interactions like likes and comments. +4. **State Channels**: Establish and maintain state channels with Waku, facilitating seamless message exchanges and updates without blockchain interaction. +5. **Signature Exchange for Multi-Signature Wallets**: Allow multi-signature wallet owners to exchange signatures privately and securely through Waku. +6. **Game Mechanics Communication**: Implement Waku as a communication layer for decentralised, peer-to-peer gaming, avoiding centralised infrastructure. +7. **Layer 2 Coordination (Open Market, Spam Protected Mempool)**: Broadcast and aggregate Layer 2 transactions via Waku to enhance privacy and scalability, reducing network load. +8. **Social Media Platforms**: Beyond chat messengers, use Waku for decentralised, censorship-resistant social media platforms like news feeds and multimedia sharing. -## Integrate using SDKs +:::tip +Looking for what to build with Waku? Discover a collection of sample ideas and use cases for inspiration, curated by our community at: https://ideas.waku.org/ and [Awesome Waku](https://github.com/waku-org/awesome-waku/). +::: + +## Getting Started + +### Run a Waku node + +Waku is a decentralised, permissionless system where anyone can run a node, use the network, and contribute to its support. We recommend following the [Run Nwaku with Docker Compose](/guides/nwaku/run-docker-compose) guide and [Waku Node Operator Cheatsheet](/Waku-NodeOperator.pdf) to easily run a node. + + + +:::tip +If you encounter issues running your node or require assistance with anything, please visit the [#node-help channel](https://discord.com/channels/1110799176264056863/1216748184592711691) on our Discord. +::: + +### Integrate using SDKs Waku is implemented in multiple SDKs, allowing it to integrate with different languages and address various use cases efficiently. -| | Description | Documentation | -| - | - | - | -| [@waku/sdk](https://github.com/waku-org/js-waku) | JavaScript/TypeScript SDK designed for browser environments | [JavaScript Waku SDK](/guides/js-waku/) | +| | Description | Documentation | +| -------------------------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------- | +| [@waku/sdk](https://github.com/waku-org/js-waku) | JavaScript/TypeScript SDK designed for browser environments | [JavaScript Waku SDK](/guides/js-waku/) | | [@waku/react](https://www.npmjs.com/package/@waku/react) | React components and UI adapters designed for seamless integration with `@waku/sdk` | [Build React DApps Using @waku/react](/guides/js-waku/use-waku-react) | -| [nwaku](https://github.com/waku-org/nwaku) | Nim SDK designed for integration with native Nim applications | COMING SOON | -| [go-waku](https://github.com/waku-org/go-waku) | Golang SDK designed for integration with Golang applications, includes C bindings for usage in C/C++, C#/Unity, Swift, and Kotlin | COMING SOON | -| [waku-rust-bindings](https://github.com/waku-org/waku-rust-bindings) | Rust wrapper using `go-waku` bindings designed for integration in Rust applications | COMING SOON | -## Run on mobile devices +## Other integrations -Waku provides integrations tailored for mobile applications, enabling Waku to run efficiently on mobile devices. - -| | Description | Documentation | -| - | - | - | -| Swift (iOS) | `go-waku` bindings for Swift applications to seamlessly integrate Waku | COMING SOON | -| Kotlin (Android) | `go-waku` bindings for Kotlin applications to seamlessly integrate Waku | COMING SOON | - -## More integrations - -| | Description | Documentation | -| - | - | - | -| [REST API](https://waku-org.github.io/waku-rest-api/) | REST API interface provided by `nwaku` and `go-waku` to interact with the Waku Network | [Waku Node REST API Reference](https://waku-org.github.io/waku-rest-api/) | -| [@waku/create-app](https://www.npmjs.com/package/@waku/create-app) | Starter kit to bootstrap your next `@waku/sdk` project from various example templates | [Scaffold DApps Using @waku/create-app](/guides/js-waku/use-waku-create-app) | +| | Description | Documentation | +| ------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| [REST API](https://waku-org.github.io/waku-rest-api/) | REST API interface provided by `nwaku` and `go-waku` to interact with the Waku Network | [Waku Node REST API Reference](https://waku-org.github.io/waku-rest-api/) | +| [@waku/create-app](https://www.npmjs.com/package/@waku/create-app) | Starter kit to bootstrap your next `@waku/sdk` project from various example templates | [Scaffold DApps Using @waku/create-app](/guides/js-waku/use-waku-create-app) | :::tip -Check out the [Waku Idea Board](https://ideas.waku.org/) for creative project ideas and explore the limitless possibilities of the Waku protocol. -::: \ No newline at end of file +Explore some example apps built using Waku at https://examples.waku.org/ and view a list of projects and workshops from previous hackathons at https://github.com/waku-org/awesome-waku. +::: diff --git a/docusaurus.config.js b/docusaurus.config.js index 5070f1d..890378e 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -107,7 +107,7 @@ const config = { label: "Getting Started", }, { - to: "/guides/nwaku/run-node", + to: "/guides/nwaku/run-docker", label: "Run a Nwaku Node", }, { @@ -153,7 +153,7 @@ const config = { label: "Blog", }, { - href: "https://rfc.vac.dev/", + href: "https://rfc.vac.dev/waku", label: "Vac RFCs", }, { @@ -170,12 +170,12 @@ const config = { label: "Terms of Use", }, { - href: '/privacy-policy', - label: 'Privacy Policy', + href: "/privacy-policy", + label: "Privacy Policy", }, { - href: '/rules-of-engagement', - label: 'Rules of Engagement', + href: "/rules-of-engagement", + label: "Rules of Engagement", }, ], }, diff --git a/sidebars.js b/sidebars.js index 36b0b7b..acf1cbc 100644 --- a/sidebars.js +++ b/sidebars.js @@ -7,7 +7,7 @@ const sidebars = { { type: "category", label: "Run a Nwaku Node", - collapsed: false, + collapsed: true, link: { type: "doc", id: "guides/nwaku/run-node", @@ -31,7 +31,7 @@ const sidebars = { { type: "category", label: "JavaScript Waku SDK", - collapsed: false, + collapsed: true, link: { type: "doc", id: "guides/js-waku/index", @@ -59,6 +59,31 @@ const sidebars = { }, ], }, + { + type: "link", + label: "Learn About Waku", + href: "/learn/waku-network", + }, + { + type: "link", + label: "Waku Research", + href: "/research", + }, + { + type: "html", + value: + 'Discord', + }, + { + type: "html", + value: + 'Awesome Waku', + }, + { + type: "html", + value: + 'Waku Idea Board', + }, ], learn: [ "learn/waku-network", @@ -92,11 +117,6 @@ const sidebars = { "learn/waku-vs-libp2p", "learn/glossary", "learn/faq", - { - type: "html", - value: - 'Waku Idea Board', - }, ], research: [ { diff --git a/src/css/custom.scss b/src/css/custom.scss index b75d0e9..d96220d 100644 --- a/src/css/custom.scss +++ b/src/css/custom.scss @@ -35,4 +35,4 @@ html[data-theme="dark"] .header-github-link:before { .theme-doc-toc-desktop { display: none; -} \ No newline at end of file +} diff --git a/static/Waku-NodeOperator.pdf b/static/Waku-NodeOperator.pdf new file mode 100644 index 0000000..040b8c6 Binary files /dev/null and b/static/Waku-NodeOperator.pdf differ