> For the complete documentation index, see [llms.txt](https://dnotifier.gitbook.io/product-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dnotifier.gitbook.io/product-docs/getting-started/installation.md).

# Install an SDK

DNotifier provides official SDKs for multiple languages and platforms. This page is the hub for installation — pick your stack and follow the dedicated guide.

## Language status

| Language / platform     | Status        | Install guide                                                                                   |
| ----------------------- | ------------- | ----------------------------------------------------------------------------------------------- |
| JavaScript / TypeScript | **Available** | [javascript-typescript.md](/product-docs/getting-started/installation/javascript-typescript.md) |
| Dart / Flutter          | **Available** | [dart-flutter.md](/product-docs/getting-started/installation/dart-flutter.md)                   |
| Python                  | **Available** | [python.md](/product-docs/getting-started/installation/python.md)                               |
| .NET                    | Coming soon   | [dotnet.md](/product-docs/getting-started/installation/dotnet.md)                               |
| Android (native)        | Coming soon   | [android.md](/product-docs/getting-started/installation/android.md)                             |
| iOS (native)            | Coming soon   | [ios.md](/product-docs/getting-started/installation/ios.md)                                     |

## Prerequisites (all languages)

Before installing any SDK:

1. [**Create a DNotifier account**](/product-docs/getting-started/register-account.md) and sign in at [app.dnotifier.com](https://app.dnotifier.com)
2. [**Create an app**](/product-docs/getting-started/create-app.md) and copy `appId` and `secret`
3. [**Store credentials securely**](/product-docs/getting-started/credentials.md) in environment variables
4. [**Choose your transport**](/product-docs/getting-started/choose-transport.md) — `ws` for realtime messaging, `http` for AI/RAG/workflows

## Recommended path

```
Install SDK  →  First connection  →  First message
     │                │                    │
     └────────────────┴────────────────────┘
              getting-started guides
```

1. **Install** — Add the package for your language (this section)
2. [**First connection**](/product-docs/getting-started/first-connection.md) — Construct `DNotifier`, call `connect()`
3. [**First message**](/product-docs/getting-started/first-message.md) — Send a 1:1 text message over WebSocket

## JavaScript / TypeScript

Install from npm:

```bash
npm install @dnotifier-realtime/dnotifier
```

Supports Node.js and browsers. Node requires a WebSocket implementation when using `transport: "ws"`.

→ [**Full JavaScript / TypeScript install guide**](/product-docs/getting-started/installation/javascript-typescript.md)

## Dart / Flutter

Add to `pubspec.yaml`:

```yaml
dependencies:
  dnotifier: ^1.1.10
```

Run `dart pub get` or `flutter pub get`.

→ [**Full Dart / Flutter install guide**](/product-docs/getting-started/installation/dart-flutter.md)

## Python

Install from PyPI:

```bash
pip install dnotifier
```

Requires Python 3.9+. The SDK is async-first (`async`/`await`).

→ [**Full Python install guide**](/product-docs/getting-started/installation/python.md)

## Coming soon

.NET, Android, and iOS SDKs are in development. Each coming-soon page describes what to expect and links to available guides you can use today.

* [.NET](/product-docs/getting-started/installation/dotnet.md)
* [Android](/product-docs/getting-started/installation/android.md)
* [iOS](/product-docs/getting-started/installation/ios.md)

## After installation

* [**Your first connection**](/product-docs/getting-started/first-connection.md)
* [**Your first message**](/product-docs/getting-started/first-message.md)
* [**Understanding messages**](/product-docs/getting-started/understanding-messages.md)
