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

# Create Service Accounts

> Set up Supabase, RevenueCat, and MixPanel

# Create Service Accounts

Your app needs three backend services for database, payments, and analytics. All have generous free tiers — you won't pay anything until you have real users.

***

## What You're Setting Up

| Service        | Purpose                   | Free Tier                        |
| -------------- | ------------------------- | -------------------------------- |
| **Supabase**   | Database + Authentication | 500MB storage, 50K monthly users |
| **RevenueCat** | Subscription payments     | First \$2,500/month revenue free |
| **MixPanel**   | Analytics & events        | 20 million events/month          |

<Note>
  **Total cost to start: \$0.** All services have free tiers that are more than enough for launching and validating your app.
</Note>

***

## 1. Supabase

Supabase is your database and authentication provider. It's like Firebase but open source.

<Steps>
  <Step title="Create Account">
    Go to [supabase.com](https://supabase.com/) and sign up (GitHub login works)
  </Step>

  <Step title="Create New Project">
    Click **New Project**, choose a name and strong database password. Save this password — you'll need it later.
  </Step>

  <Step title="Wait for Setup">
    Takes about 2 minutes for Supabase to provision your database
  </Step>

  <Step title="Get Your Keys">
    Go to **Settings → API** and copy:

    * **Project URL** (looks like `https://xxxxx.supabase.co`)
    * **Publishable key** (starts with `sb_publishable_...`)
  </Step>
</Steps>

<Tip>
  Save these in a note — you'll paste them during project setup.
</Tip>

***

## 2. RevenueCat

RevenueCat handles all your subscription logic — purchases, renewals, trials, and receipt validation.

<Steps>
  <Step title="Create Account">
    Go to [revenuecat.com](https://www.revenuecat.com/) and sign up
  </Step>

  <Step title="Create New Project">
    Click **+ New Project** and give it a name
  </Step>

  <Step title="Add iOS App">
    In your project, click **Apps → + New App**

    * Select **App Store**
    * Enter your Bundle ID (e.g., `com.yourcompany.yourapp`)
  </Step>

  <Step title="Get API Key">
    Go to **API Keys** (left sidebar) and copy the **public app-specific API key**

    It starts with `appl_` for iOS apps.
  </Step>
</Steps>

<Warning>
  **Use the public key, not the secret key.** The public key is safe to include in your app. The secret key should never be in client code.
</Warning>

***

## 3. MixPanel

MixPanel tracks user behavior — where they drop off, what features they use, and how your paywall converts.

<Steps>
  <Step title="Create Account">
    Go to [mixpanel.com](https://mixpanel.com/) and sign up
  </Step>

  <Step title="Create New Project">
    Click **+ Create Project** and give it a name
  </Step>

  <Step title="Get Project Token">
    Go to **Settings → Project Settings** (gear icon)

    Copy the **Project Token** (32-character string)
  </Step>
</Steps>

***

## Save Your Credentials

Before moving on, make sure you have:

| Service    | What You Need                                                                                            |
| ---------- | -------------------------------------------------------------------------------------------------------- |
| Supabase   | Project URL + publishable key (`sb_publishable_...`)                                                     |
| RevenueCat | iOS public app-specific API key (starts with `appl_`). Use **test** first; swap to **production** later. |
| MixPanel   | Project token                                                                                            |

<Info>
  You'll paste these into the setup script in the next step. Keep them handy.
</Info>

***

## Next Step

<Card title="Setup Your Project" icon="folder" href="/quickstart/setup-project">
  Clone the repository and configure your app with these credentials
</Card>
