> ## Documentation Index
> Fetch the complete documentation index at: https://docs.natecosmic.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Creating Apps

> Create an app in the COSMIC developer portal and save its credentials.

Use this guide to create an app in the COSMIC developer portal, configure its
redirect URIs, and save its credentials.

## Before you begin

* If you do not already have an account, sign up at{" "}
  <a href="https://natecosmic.com/developers" rel="noopener noreferrer" target="_blank">natecosmic.com/developers</a>.

## Create your app in the portal

<Steps>
  <Step title="Open the developer portal">
    Go to{" "}
    <a href="https://natecosmic.com/developers" rel="noopener noreferrer" target="_blank">natecosmic.com/developers</a> and
    sign in.
  </Step>

  <Step title="Create a new app">
    Select the option to create an app, then enter your app name.
  </Step>

  <Step title="Choose a client type">
    Select whether your app is a public client or a confidential client.

    Use a **public client** if your app runs in an environment that cannot
    securely store a client secret, such as a single-page app, mobile app, or
    desktop app.

    Use a **confidential client** if your app has a trusted backend that will
    securely store a client secret.
  </Step>

  <Step title="Add redirect URI values">
    Add the redirect URI(s) your app will use.
  </Step>

  <Step title="Select scopes">
    In the app settings, enable each **scope** your integration needs. Users see the same list at consent before they approve your app.

    See [Scopes](/concepts/scopes) for what each scope allows and how to choose them.
  </Step>

  <Step title="Save and capture credentials">
    After creating the app, copy and securely store your `client_id`.

    If your app is a confidential client, also copy and securely store your
    `client_secret`.
  </Step>
</Steps>

<Warning>
  Treat `client_secret` like a password. Store it in a secure secret manager and
  never commit it to source control.

  Public clients do not receive a `client_secret`.
</Warning>

## Next steps

* Continue to [OAuth](/guides/oauth) to implement authorization and token exchange.
* Use [Quickstart](/quickstart) for an end-to-end integration walkthrough.
