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

# Quickstart

> Create an application, connect a provider, integrate an SDK, and send your first Pushctl notification.

This guide takes you from a new account to one registered device and one test notification.

## Before you begin

You need access to at least one push provider:

<Tabs>
  <Tab title="iOS">
    Prepare the app's bundle identifier, your 10-character Apple Team ID and Key ID, and the APNs `.p8` authentication key. Apple lets you download a key only once.
  </Tab>

  <Tab title="Android">
    Prepare the Android package ID and a Firebase service-account JSON document containing `project_id`, `client_email`, and `private_key`.
  </Tab>
</Tabs>

<Steps>
  <Step title="Create and verify your account">
    Select **Sign up**, enter your name, email address, and password, then open the verification link sent to your inbox.
  </Step>

  <Step title="Complete application onboarding">
    Name the application, set its reporting timezone, choose its platforms, and add the matching provider credentials. Select the **Client** token preset if you are setting up a mobile SDK.
  </Step>

  <Step title="Copy the token">
    The token secret appears once. Store it now. You can create another token later from **Application settings** if you lose it.
  </Step>

  <Step title="Install a client SDK">
    <CardGroup cols={3}>
      <Card title="Android" href="/sdks/android/quickstart" icon="android">Native Kotlin or Java apps.</Card>
      <Card title="iOS" href="/sdks/ios/quickstart" icon="apple">Native Swift apps.</Card>
      <Card title="Capacitor" href="/sdks/capacitor/quickstart" icon="mobile">Capacitor 7 and 8 apps.</Card>
    </CardGroup>
  </Step>

  <Step title="Register and identify the device">
    Initialize the SDK and request notification permission. After your user signs in, call `login` with the stable ID you use in your own system.
  </Step>

  <Step title="Confirm the installation">
    Open **Applications** → your application → **Installations**. Search for the external user ID and confirm that its permission is **Authorized**.
  </Step>

  <Step title="Send a notification">
    Open **Notifications** → **Send notification**, add the external user ID as a recipient, enter a title and body, and select **Queue notification**.
  </Step>
</Steps>

<Check>
  Open the notification detail page. An **Accepted** count means APNs or FCM accepted the push. SDK lifecycle events populate the received, displayed, and opened counts.
</Check>

## Next steps

<CardGroup cols={2}>
  <Card title="Protect your tokens" href="/applications/tokens" icon="key">Use the narrowest token preset for each integration.</Card>
  <Card title="Read delivery results" href="/notifications/delivery-results" icon="chart-line">Distinguish provider acceptance from device engagement.</Card>
</CardGroup>
