diff --git a/.cspell.json b/.cspell.json
index 62b8370..e9e5dc6 100644
--- a/.cspell.json
+++ b/.cspell.json
@@ -79,6 +79,7 @@
"txid",
"baarerstrasse",
"FDPIC",
+ "IPFS",
],
"flagWords": [],
"ignorePaths": [
diff --git a/docs/guides/js-waku/faq.md b/docs/guides/js-waku/faq.md
new file mode 100644
index 0000000..8a5390a
--- /dev/null
+++ b/docs/guides/js-waku/faq.md
@@ -0,0 +1,51 @@
+---
+title: JavaScript SDK FAQ
+hide_table_of_contents: true
+sidebar_label: Frequently Asked Questions
+---
+
+import { AccordionItem } from '@site/src/components/mdx'
+
+
+ You can add the JavaScript SDK to your project using NPM, Yarn, or a CDN. Check out the installation guide to get started.
+
+
+
+ Protocol Buffers ensure consistent formatting, interoperability, and backward compatibility for your application's messages, with a smaller payload size than JSON. Check out the installation guide and Protobuf documentation to learn more.
+
+
+
+ Check out the Retrieve Messages Using Store Protocol guide to learn how to retrieve and filter historical messages using the Store protocol.
+
+
+
+ When creating your message encoder, you can configure the ephemeral option to prevent Store peers from keeping your messages on the Waku Network.
+
+
+
+ You can encrypt and decrypt your messages using symmetric, ECIES, and noise encryption methods. Check out the Encrypt, Decrypt, and Sign Your Messages guide to get started.
+
+
+
+ Waku has a specialized SDK designed for building React applications. Check out the Build React DApps Using @waku/react guide for instructions on installation and usage.
+
+
+
+ The JavaScript SDK has a default bootstrap method that can be configured with Static Peers and DNS Discovery. Check out the Bootstrap Nodes and Discover Peers guide for setting up peer discovery for your node.
+
+
+
+ Though the JavaScript SDK isn't directly usable in NodeJS due to certain limitations, we recommend running nwaku in a Docker container and consuming its REST API in a NodeJS application.
+
+
+
+ Check out the Debug Your Waku DApp and WebSocket guide to discover how to use debug logs to troubleshoot your Waku DApp and resolve connection issues with nwaku WebSockets.
+
+
+
+ We recommend regularly pinging peers to check for an active connection and reinitiating the subscription when it disconnects. Check out the Manage Your Filter Subscriptions guide for a detailed explanation and step-by-step instructions.
+
+
+
+ While it's possible to transmit media such as images as bytes on Waku, we recommend uploading your media to a CDN or a file system like IPFS and then sharing the corresponding URL via Waku.
+
\ No newline at end of file
diff --git a/docs/guides/js-waku/light-send-receive.md b/docs/guides/js-waku/light-send-receive.md
index fd52bc3..02bfa67 100644
--- a/docs/guides/js-waku/light-send-receive.md
+++ b/docs/guides/js-waku/light-send-receive.md
@@ -62,12 +62,12 @@ const encoder = createEncoder({ contentTopic });
const decoder = createDecoder(contentTopic);
```
-The `ephemeral` option allows you to specify whether messages should not be stored by [Store peers](/guides/js-waku/store-retrieve-messages):
+The `ephemeral` option allows you to specify whether messages should **NOT** be stored by [Store peers](/guides/js-waku/store-retrieve-messages):
```js
const encoder = createEncoder({
contentTopic: contentTopic, // message content topic
- ephemeral: true, // allows messages not be stored on the network
+ ephemeral: true, // allows messages NOT be stored on the network
});
```
diff --git a/docs/guides/js-waku/message-encryption.md b/docs/guides/js-waku/message-encryption.md
index 88a3c37..0a1706a 100644
--- a/docs/guides/js-waku/message-encryption.md
+++ b/docs/guides/js-waku/message-encryption.md
@@ -171,15 +171,11 @@ await subscription.subscribe([ECIESEncoder], callback);
await node.lightPush.send(ECIESEncoder, { payload });
```
-You can extract the `signature` and its public key (`signaturePublicKey`) from the [DecodedMessage](https://js.waku.org/classes/_waku_message_encryption.DecodedMessage.html) and compare it with the expected public key to verify the message origin:
-
-
-
+You can extract the `signature` and its public key (`signaturePublicKey`) from the [DecodedMessage](https://js.waku.org/classes/_waku_message_encryption.DecodedMessage.html) and compare it with the expected public key or use the `verifySignature()` function to verify the message origin:
```js title="Bob (receiver) client"
import { generatePrivateKey } from "@waku/message-encryption";
import { createEncoder } from "@waku/message-encryption/symmetric";
-import { equals } from "uint8arrays/equals";
// Generate a random private key for signing messages
// For this example, we'll call the receiver of the message Bob
@@ -201,7 +197,7 @@ const callback = (wakuMessage) => {
// Verify the message was actually signed and sent by Alice
// Alice's public key can be gotten from broadcasting or out-of-band methods
- if (equals(signaturePublicKey, alicePublicKey)) {
+ if (wakuMessage.verifySignature(alicePublicKey)) {
console.log("This message was signed by Alice");
} else {
console.log("This message was NOT signed by Alice");
diff --git a/docs/guides/js-waku/run-waku-nodejs.md b/docs/guides/js-waku/run-waku-nodejs.md
index 0346974..cf995df 100644
--- a/docs/guides/js-waku/run-waku-nodejs.md
+++ b/docs/guides/js-waku/run-waku-nodejs.md
@@ -27,7 +27,7 @@ Certain features in `@waku/sdk` are tailored for browsers and might not translat
## Recommendations
-Before using `@waku/sdk` in a NodeJS environment, take into account these limitations. For a more optimised solution, we recommend [running nwaku in a Docker container](/guides/nwaku/run-docker) and consuming its [REST API](https://waku-org.github.io/waku-rest-api/).
+Before using `@waku/sdk` in a NodeJS environment, take into account these limitations. For a more optimised solution, we recommend [running nwaku in a Docker container](/guides/nwaku/run-docker-compose) and consuming its [REST API](https://waku-org.github.io/waku-rest-api/).
## Future developments
diff --git a/docs/guides/js-waku/use-waku-react.md b/docs/guides/js-waku/use-waku-react.md
index 2aa50b6..163e14e 100644
--- a/docs/guides/js-waku/use-waku-react.md
+++ b/docs/guides/js-waku/use-waku-react.md
@@ -294,5 +294,5 @@ To explore the available Store query options, have a look at the [Retrieve Messa
:::
:::tip
-You have successfully integrated `@waku/sdk` into a React application using the `@waku/react` package. Have a look at the [web-chat](https://github.com/waku-org/js-waku-examples/tree/master/examples/web-chat) example for a working demo.
+You have successfully integrated `@waku/sdk` into a React application using the `@waku/react` package. Have a look at the [web-chat](https://github.com/waku-org/js-waku-examples/tree/master/examples/web-chat) example for a working demo and the [Building a Tic-Tac-Toe Game with Waku](https://blog.waku.org/tictactoe-tutorial) tutorial to learn more.
:::
\ No newline at end of file
diff --git a/docs/guides/nwaku/configure-nwaku.md b/docs/guides/nwaku/configure-nwaku.md
index e7b51c7..703bb55 100644
--- a/docs/guides/nwaku/configure-nwaku.md
+++ b/docs/guides/nwaku/configure-nwaku.md
@@ -161,7 +161,7 @@ sudo certbot certonly -d
## Configure REST API server
-Nwaku provides a REST API to interact with the node and Waku Network. To enable the REST API, use the following configuration options:
+Nwaku provides a [REST API](https://waku-org.github.io/waku-rest-api/) to interact with the node and Waku Network. To enable the REST API, use the following configuration options:
- `rest`: Enables the REST API server on the node (disabled by default).
- `rest-address` (optional): Listening address of the REST API server. If you omit this option, it will default to `127.0.0.1`.
diff --git a/docs/guides/nwaku/faq.md b/docs/guides/nwaku/faq.md
new file mode 100644
index 0000000..2544bbe
--- /dev/null
+++ b/docs/guides/nwaku/faq.md
@@ -0,0 +1,39 @@
+---
+title: Nwaku FAQ
+hide_table_of_contents: true
+sidebar_label: Frequently Asked Questions
+---
+
+import { AccordionItem } from '@site/src/components/mdx'
+
+
+ Check out the Run Nwaku with Docker Compose guide to learn the simplest and fastest way to run a node. You can also check the comprehensive Run a Nwaku Node guide to explore other options like downloading binaries and building from source.
+
+
+
+ We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.
+
+
+
+ You can interact with a running nwaku node using the REST API interface or the JavaScript Waku SDK.
+
+
+
+ To check your node logs in Docker, use the command: "docker-compose logs -f nwaku"
+
+
+
+ You can configure Nwaku nodes using command line options and flags, environment variables, and TOML configuration files. Check out the Node Configuration Methods guide to understand their usage and priority.
+
+
+
+ Check out the Node Configuration Options guide for available node configuration options, their default values and descriptions. For examples of common configuration use cases, visit the Node Configuration Examples guide.
+
+
+
+ You can configure peer discovery for nwaku nodes through options like Static Peers, DNS Discovery, DiscV5, and Peer Exchange. Check out the Configure Peer Discovery guide for setting up your node.
+
+
+
+ The node listening and ENR addresses can be found through the node's logs and REST API. Check out the Find the node addresses section to understand how to locate your node addresses.
+
\ No newline at end of file
diff --git a/docs/guides/nwaku/run-node.md b/docs/guides/nwaku/run-node.md
index ae6d846..d3154d5 100644
--- a/docs/guides/nwaku/run-node.md
+++ b/docs/guides/nwaku/run-node.md
@@ -8,7 +8,7 @@ Nwaku is a lightweight and robust Nim client for running a Waku node, equipped w
This guide provides detailed steps to download, build, configure, and connect a `nwaku` node to the Waku Network. It also includes interacting with the node and finding its addresses.
:::info
-We recommend running a `nwaku` node with at least 2GB of RAM, especially if you have `WSS` enabled. If running just a `Relay` node, 0.5GB of RAM is sufficient.
+We recommend running a `nwaku` node with at least 2GB of RAM, especially if `WSS` is enabled. If running just a `Relay` node, 0.5GB of RAM is sufficient.
:::
## Get the node binary
diff --git a/package.json b/package.json
index 099c942..a26db45 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,7 @@
},
"dependencies": {
"@acid-info/docusaurus-fathom": "^1.0.0-alpha.111",
- "@acid-info/logos-docusaurus-preset": "^1.0.0-alpha.122",
+ "@acid-info/logos-docusaurus-preset": "^1.0.0-alpha.143",
"@docusaurus/core": "^2.4.1",
"@docusaurus/preset-classic": "^2.4.1",
"@docusaurus/theme-mermaid": "^2.4.1",
diff --git a/sidebars.js b/sidebars.js
index 08238ce..7cb2b20 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -16,9 +16,10 @@ const sidebars = {
"guides/nwaku/run-docker",
"guides/nwaku/build-source",
"guides/nwaku/configure-discovery",
- "guides/nwaku/configure-nwaku",
"guides/nwaku/config-methods",
"guides/nwaku/config-options",
+ "guides/nwaku/configure-nwaku",
+ "guides/nwaku/faq",
{
type: 'html',
value: '