SweepAlert is a native SwiftUI example app for building mobile products with cloud-based coding agents.
This repo is intentionally app-focused. It contains the iOS app, its Convex backend, invite-link site, and the instructions an agent needs to safely modify, build, and validate the app with Revyl.
The separate cloud-agent runner should live in another repo. That runner can clone this repo, edit files in a Linux sandbox, call Revyl for native iOS builds, and validate the result on a cloud simulator.
| Path | Purpose |
|---|---|
apps/ios-sweep-alert |
Native SwiftUI app, WidgetKit extension, Xcode project, Revyl config example. |
convex |
App backend for users, crews, cars, invites, APNs tokens, and notifications. |
site |
Static invite-link fallback for Universal Links. |
scripts |
App-specific release and automation scripts. |
docs |
Agent, App Store, and Revyl workflow notes. |
The intended development loop is:
agent edits repo -> Revyl remote iOS build -> Revyl simulator validation -> patch/report
The agent does not need a full macOS sandbox. It needs this repo, Revyl credentials, and the commands in AGENTS.md.
Install JavaScript dependencies for Convex tooling:
npm installCreate local environment files from the examples:
cp .env.example .env.local
cp apps/ios-sweep-alert/.env.testflight.example .env.testflight
cp apps/ios-sweep-alert/.revyl/config.yaml.example apps/ios-sweep-alert/.revyl/config.yamlThen fill in the values for your Auth0, Convex, Revyl, Apple Developer, and App Store Connect accounts.
Run Convex locally:
npm run convex:devDeploy Convex:
npm run convex:deploySee convex/README.md for Auth0 and APNs environment variables.
Open the app:
open apps/ios-sweep-alert/SweepAlertSwift.xcodeprojRun the Revyl remote loop:
cd apps/ios-sweep-alert
revyl dev --context ios-native --remote --platform ios --build --no-open
revyl dev rebuild --context ios-native --wait --json
revyl dev use ios-native
revyl device screenshot --out /tmp/sweepalert-ios.pngThe TestFlight script requires App Store Connect credentials in .env.testflight:
set -a
source .env.testflight
set +a
npm run ios:testflightNo private keys or production credentials should be committed.