> ## 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.

# Quick Start Overview

> From zero to App Store — the complete path

# Quick Start Overview

This guide takes you from nothing to a live app on the App Store. Even if you've never built a mobile app before, you can follow along.

<Info>
  **Total time: \~2 hours of work** (plus 24-48 hours waiting for Apple approval)
</Info>

***

## The Path to Launch

<Steps>
  <Step title="Apple Developer Account">
    Required to publish on the App Store. Costs \$99/year. **Start this first** — Apple takes 24-48 hours to approve.
  </Step>

  <Step title="Expo Account">
    Required to build your app. Free tier is generous. Takes 5 minutes.
  </Step>

  <Step title="Create Service Accounts">
    Set up Supabase (database), RevenueCat (payments), and MixPanel (analytics). All free to start.
  </Step>

  <Step title="Setup Your Project">
    Clone the repo, run the setup script, and configure your app name and API keys.
  </Step>

  <Step title="Test Locally">
    Run the app on iOS Simulator or your physical device.
  </Step>

  <Step title="Build & Submit">
    Create a production build with EAS and submit to the App Store.
  </Step>
</Steps>

***

## Before You Start

You'll need a few tools installed on your computer. If you're new to development, don't worry — we'll explain what each one does.

### Required

<AccordionGroup>
  <Accordion title="Mac Computer" icon="laptop">
    **Why:** To test your app locally using the iOS Simulator.

    <Note>
      Technically, you can *build* without a Mac (EAS builds in the cloud), but you won't be able to test locally. We strongly recommend using a Mac for the best development experience.
    </Note>
  </Accordion>

  <Accordion title="Xcode" icon="hammer">
    **Why:** Xcode includes the iOS Simulator, which lets you test your app without a physical iPhone.

    **Install:**

    1. Download from the [Mac App Store](https://apps.apple.com/app/xcode/id497799835) (it's free but \~12GB)
    2. Open Xcode once after installing to accept the license
    3. Open Terminal and run: `sudo xcodebuild -license accept`

    <Warning>
      Xcode takes a while to download. Start this early.
    </Warning>
  </Accordion>

  <Accordion title="Node.js 18+" icon="node-js">
    **Why:** Node.js runs JavaScript on your computer. The entire development toolchain (Expo, building, running) depends on it.

    **Install:**

    1. Go to [nodejs.org](https://nodejs.org/)
    2. Download the **LTS** version (not "Current")
    3. Run the installer

    **Verify:** Open Terminal and run `node --version`. You should see `v18.x.x` or higher.
  </Accordion>

  <Accordion title="Git" icon="git-alt">
    **Why:** Git lets you download (clone) the kit repository to your computer.

    **Check if installed:** Open Terminal and run `git --version`

    If not installed, macOS will prompt you to install it, or download from [git-scm.com](https://git-scm.com/)
  </Accordion>

  <Accordion title="Code Editor" icon="code">
    **Why:** You need something to edit code.

    **Our recommendation: [Cursor](https://cursor.com/)** — It's VS Code with AI built in. The AI can explain code, fix errors, and help you customize the kit faster. Especially useful if you're new to mobile development.

    **Free alternative: [VS Code](https://code.visualstudio.com/)** — If you want something simple without AI features, VS Code is the industry standard and completely free.

    <Tip>
      Both editors support the same extensions. Install "Expo Tools" for better autocompletion.
    </Tip>
  </Accordion>
</AccordionGroup>

### Good to Know

<AccordionGroup>
  <Accordion title="Terminal / Command Line" icon="terminal">
    You'll run commands in Terminal (the app on your Mac). If you've never used it:

    * Open **Terminal** from Applications → Utilities
    * You type commands and press Enter to run them
    * Commands like `cd folder-name` navigate to folders
    * Commands like `npm install` install dependencies

    Don't worry — we'll give you the exact commands to copy and paste.
  </Accordion>

  <Accordion title="Physical iPhone (Optional)" icon="mobile">
    You can test entirely on the Simulator, but testing on a real device is better for:

    * Performance testing
    * Camera/photo features
    * Push notifications

    The kit works on Simulator for development. Test on a real device before submitting.
  </Accordion>
</AccordionGroup>

***

## Time Breakdown

Here's how long each step actually takes:

| Step                    | Active Time     | Waiting Time           |
| ----------------------- | --------------- | ---------------------- |
| Apple Developer Account | 15 min          | 24-48 hours            |
| Expo Account            | 5 min           | —                      |
| Service Accounts        | 30 min          | —                      |
| Project Setup           | 15 min          | —                      |
| Local Testing           | 15 min          | —                      |
| First Build             | 10 min          | 15-20 min (build time) |
| **Total**               | **\~1.5 hours** | **\~24-48 hours**      |

<Tip>
  **Pro tip:** Start the Apple Developer enrollment first, then set up everything else while you wait for approval.
</Tip>

***

## What You'll Have at the End

After completing this guide:

✅ A working iOS app running on your device\
✅ User authentication (anonymous, upgradeable to email/social)\
✅ Subscription payments via RevenueCat\
✅ Analytics tracking every user action\
✅ A production build ready for App Store submission

***

## Let's Begin

The most important step is getting your Apple Developer account approved. Everything else can be done in parallel.

<CardGroup cols={2}>
  <Card title="Set Up Apple Developer Account" icon="apple" href="/quickstart/apple-developer">
    New to iOS development? Start here
  </Card>

  <Card title="I Already Have One" icon="forward" href="/quickstart/expo-account">
    Skip to Expo account setup
  </Card>
</CardGroup>
