Wayfare, a trip planning and booking app: a complete Xcode project with guides, a map of nearby places, day-by-day itineraries, stay booking, widgets and three brand presets.
A travel app on a four-tab shell. First run asks for location, verifies a phone number and hands off to a StoreKit 2 paywall. Discover opens a cover story into its guide and searches destinations, places and trips. Explore puts nearby places in a sheet over a drawn map. Trips shows today's plan and each trip day by day, and books a stay from a floating card through a checkout that pays with a swipe. Profile holds trip updates, the subscription and sign out.
$199 once, every piece included. See how installing works · Sign in
The screens this template wires together, in the order someone meets them.
First run
Welcome pages, a location request, phone verification and the StoreKit 2 paywall. Runs once, then records completion.
Tabs
Discover, Explore, Trips and Profile on the App Shell. Discover's cover story expands into its guide; Explore is the map under a detent sheet.
From the tabs
Search opens from Discover. A stay opens with its booking card, then checkout pays with the saved card and a swipe. Trip updates arrive on the toast stack.
SwiftUI source you own, built on Apple frameworks only.
TravelApp, with your product ids and completion key as parametersOnboarding, Welcome, Verify, Purchase, Paywall, App Shell, Lessons, Discover, Search, Nearby, Stay, Card Details, Send Money, Settings, Notifications. Installed together, automatically.
In-App Purchase capability
Travel (brief). Your agent builds around this template in the same design.
How it behaves, what it handles, and the decisions behind it.
TravelApp is one root view. On first launch it shows the Onboarding screen: three pages, a location request that turns distances into walking times, then phone verification on the Verify screen's CodeEntry, handing off to the Purchase screen's StoreKit 2 paywall. Closing, purchasing or restoring finishes onboarding and records it under a completion key, so the root switches to the home on its own.
Home is the App Shell with four tabs. Discover puts a cover story at the top edge that expands into its guide, with search and a rail of destinations drawn from the brand. Explore is the Nearby screen: a drawn map under a detent sheet with places as blocks. Trips shows today's plan with one-tap checks and opens a stay with its floating booking card, then a checkout that pays with a saved card and a swipe. Profile is Settings, with trip updates previewed on the toast stack, the subscription and sign out back to first run.
productIDs. Until they exist, the paywall shows its designed "plans didn't load" state and its close button still finishes onboarding.TravelPhoneStep.verify accepts any six digits. Call your auth provider there.NSLocationWhenInUseUsageDescription to Info.plist before the location step runs.Wayfare sample data section of TravelApp.swift, nearby places in DetentSheetExample, and the stay in GlassSheetExample. Swap each for your own model and client.TravelApp. Without a brand it wears Wayfare Studio; SPBrandTheme(.wayfareEditorial) or .wayfareGraphic re-skin every tab, including the destination art.The download is a complete project on Tuist: SwiftData trips, itinerary items, saved places and bookings behind a repository protocol; destination guides, place details and saved places; a trip itinerary with day-by-day timelines; a full booking flow with price breakdown, confirmation codes, receipts and cancellation; Sign in with Apple or phone verification; trip reminders; Next Trip and Today's Plan widgets with interactive check-offs; three presets; unit tests and a first-run UI test.
@main: put TravelApp() in your own WindowGroup.Pieces that work well next to this one.