# First time setup

Follow this step-by-step guide to set up the Sinch Voice and Video SDK for the first time.

## Register an application

1. Register a Sinch Developer account [here](https://dashboard.sinch.com/signup).
2. Set up a new application in the Dashboard to obtain an *Application Key* and an *Application Secret*.


## Download

Get the SDK from
[`SDK downloads`](/docs/in-app-calling/sdk-downloads).
It includes `sinch.min.js`, this user guide, reference docs, and sample apps.

## Add the Sinch library

You can include Sinch in several ways. Pick the one that fits your setup.

### Host with your web app

Host the library with your site and include it:


```html
<script src="sinch.min.js"></script>
```

### Load from Sinch CDN (by version)

Load a specific version from the CDN:


```html
<script src="//cdn.sinch.com/<version>/sinch-rtc-min.js"></script>
```

### Load from Sinch CDN (latest)

Always load the latest version:


```html
<script src="//cdn.sinch.com/latest/sinch-rtc-min.js"></script>
```

### Install via npm

If you're using a bundler (Webpack, Vite, etc.), install the package from npm:


```bash
npm install sinch-rtc
```

Then import it in your code:


```js
import { Sinch } from "sinch-rtc";
```

See [sinch-rtc on npm](https://www.npmjs.com/package/sinch-rtc) for more details.

## Type definitions (optional)

Type definitions are included with the SDK.


```js
import { Sinch } from "../types/common/sinch-rtc";
```

Move `sinch-rtc.d.ts` (from the SDK) into your project’s definitions
directory and import it.

![Types imported into your IDE](/assets/jssdk-types.90a22e37fc241035556b99b9dfa370f60a001403b8a302913816ddda85652dd7.3032db13.png)