You can add the JavaScript SDK to your project using NPM, Yarn, or a CDN. Check out the <ahref="/build/javascript/#installation">installation guide</a> 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 <ahref="/build/javascript/#message-structure">installation guide</a> and <ahref="https://protobuf.dev/overview/">Protobuf documentation</a> to learn more.
Check out the <ahref="/build/javascript/store-retrieve-messages">Retrieve Messages Using Store Protocol</a> guide to learn how to retrieve and filter historical messages using the <ahref="/learn/concepts/protocols#store">Store protocol</a>.
When <ahref="/build/javascript/light-send-receive#choose-a-content-topic">creating your message encoder</a>, you can configure the <strong>ephemeral</strong> 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 <ahref="/build/javascript/message-encryption">Encrypt, Decrypt, and Sign Your Messages</a> guide to get started.
Waku has a specialized SDK designed for building React applications. Check out the <ahref="/build/javascript/use-waku-react">Build React DApps Using @waku/react</a> guide for instructions on installation and usage.
The JavaScript SDK has a <ahref="/build/javascript/configure-discovery#default-bootstrap-method">default bootstrap method</a> that can be configured with <ahref="/learn/concepts/static-peers">Static Peers</a> and <ahref="/learn/concepts/dns-discovery">DNS Discovery</a>. Check out the <ahref="/build/javascript/configure-discovery">Bootstrap Nodes and Discover Peers</a> guide for setting up peer discovery for your node.
Though the JavaScript SDK isn't directly usable in NodeJS due to <ahref="/build/javascript/run-waku-nodejs">certain limitations</a>, we recommend running <ahref="/run-node/run-docker-compose">nwaku in a Docker container</a> and consuming its <ahref="https://waku-org.github.io/waku-rest-api/">REST API</a> in a NodeJS application.
Check out the <ahref="/build/javascript/debug-waku-dapp">Debug Your Waku DApp and WebSocket</a> 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 <ahref="/build/javascript/manage-filter">Manage Your Filter Subscriptions</a> guide for a detailed explanation and step-by-step instructions.
<AccordionItemtitle="How can I send images and videos on the Waku Network?">
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 <ahref="https://ipfs.tech/">IPFS</a> and then sharing the corresponding URL via Waku.
To manually set your own node as a starting point use <ahref="/build/javascript/configure-discovery#configure-static-peers">Configure static peers</a>.