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

# Deployment

> How the site is deployed, what triggers deploys, and how to manage them

The site is hosted on **Vercel**. The repository lives at `github.com/wlumsa/wlumsa.org`.

## Deploy triggers

| Trigger                     | Result                                    |
| --------------------------- | ----------------------------------------- |
| Push or merged PR to `main` | Production deployment at `wlumsa.org`     |
| Push to any other branch    | Preview deployment at a unique Vercel URL |
| Opened pull request         | Preview deployment linked in the PR       |

Preview URLs let you verify changes before they go live. Every PR gets its own URL automatically.

## Manual deploy

If you need to trigger a deploy outside of a git push — for example, to pick up a content change or force a rebuild — you can do it from the Vercel dashboard:

1. Go to the project in the Vercel dashboard
2. Open the **Deployments** tab
3. Click **Redeploy** on the most recent production deployment

Alternatively, if you have the Vercel CLI installed:

```bash theme={null}
vercel --prod
```

## Build commands

| Command      | What it does                                                  |
| ------------ | ------------------------------------------------------------- |
| `pnpm build` | Runs `next build` then generates a sitemap via `next-sitemap` |
| `pnpm start` | Starts the production server locally                          |
| `pnpm dev`   | Starts the development server at `http://localhost:3000`      |

Vercel runs `pnpm build` automatically on each deployment. You do not need to configure this manually.

## Environment variables

Environment variables are managed in the Vercel dashboard under **Settings → Environment Variables**.

* Production, preview, and development environments each have their own set of values.
* To sync variables to your local environment, run:

```bash theme={null}
vercel env pull .env
```

<Warning>
  Never commit `.env` or `.env.local` to the repository. These files contain secrets and are listed in `.gitignore`.
</Warning>

## Cron jobs

A cron job is configured in `vercel.json` to run daily:

| Path                       | Schedule                     | Purpose                             |
| -------------------------- | ---------------------------- | ----------------------------------- |
| `/api/prayer-times/weekly` | `0 5 * * *` (5 AM UTC daily) | Updates the weekly prayer timetable |

Vercel handles scheduling automatically once deployed. No additional setup is needed.
