Skip to content

Repository files navigation

tunedIn

tunedIn is an iOS-native social concert app for finding community-created events, seeing which friends are going, making plans, and sharing personal concert Posts. The MVP is a SwiftUI app backed by Supabase.

Repository layout

  • ios/ — SwiftUI app, Xcode project definition, and unit tests.
  • supabase/ — versioned migrations, RLS/RPC tests, deterministic development seed data, and Edge Functions.
  • scripts/ — safe terminal helpers used by make and CI.
  • .github/ — pull-request checks and dependency updates.

Local setup

Xcode 26.6 is the local baseline. Xcode is required for native builds, Simulator work, debugging, signing, and capability configuration; the rest of the setup is terminal-first.

brew bundle --file=Brewfile
make configure
make setup
make generate
make build

make configure creates ignored .xcconfig files from their tracked templates. Add the Development Supabase URL and publishable key only after the hosted project is provisioned. Never place service-role keys, database passwords, or other privileged values in the app or Git.

Daily commands

make build
make test
make lint
make format
make simulator-status
make simulator-auth-link
make simulator-onboarding
make simulator-profile
make simulator-profile-error
make simulator-live
make backend-verify
make dev-status
make dev-plan
make build-staging
make staging-status SUPABASE_PROJECT_REF=YOUR_STAGING_PROJECT_REF
make staging-plan SUPABASE_PROJECT_REF=YOUR_STAGING_PROJECT_REF

Local iOS build, test, install, launch, Auth-link, and cache commands target a dedicated iPhone 13 Simulator whose identity is derived from the current Git worktree path. Different worktrees can therefore run at the same time without installing over one another or sharing app containers, and each worktree keeps build products in its own ignored DerivedData/. Run make simulator-delete before removing a worktree; see the Worktree Simulators runbook.

For the temporary Development magic-link flow, copy the email button's link address and run make simulator-auth-link while tunedIn is installed in this worktree's Simulator. The helper validates the clipboard URL and never prints the one-time token.

The simulator-onboarding, simulator-profile, and simulator-profile-error commands launch Development-only deterministic UI fixtures without sending email. They do not create a Supabase session or access protected backend data. Use make simulator-live for real Supabase integration.

After Local verification, use make dev-deploy from the feature branch to manually dispatch the protected Development migration workflow. Development is the shared integration environment before Staging and may contain in-progress work. It reruns disposable schema/type/pgTAP verification before applying forward-only migrations; see the Development Database Deployment runbook.

When a reviewed main commit is ready for integrated beta testing, dispatch Promote Staging from the GitHub Actions UI. It archives the separate tunedIn Staging app, promotes the isolated Staging backend, and uploads the archive to TestFlight; see the Staging Promotion runbook.

Use focused feature/, fix/, or chore/ branches and open pull requests into main. Squash merge approved changes and tag external releases as vMAJOR.MINOR.PATCH.

About

tunedIn is an iOS-native private-beta concert journal for shared memories.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages