Template · Health
Meditation App SwiftUI Template
Stillwater, a calm wellbeing app: a complete Xcode project with mood check-ins, guided breathing, short courses, a journal, widgets and three brand presets. 19 screens and 4 flows in Stillwater, as a SwiftUI app template.
A wellbeing app on a five-tab shell. First run is the Onboarding screen with a reminders request, Sign in with Apple and a StoreKit 2 paywall for Stillwater Plus. Today checks in around the mood orb and suggests a session, Breathe opens the guided session, Learn pushes the reader, Journal starts from a ghost state, and Profile holds settings and sign out.
- SwiftUI
- iOS 17.0+
- Xcode project 1.0.0
- meditation-app
$199 once, every piece included. See how installing works · Sign in
01
Flows
Complete journeys through Stillwater, from first launch to sign out, screen by screen. Open one to play it, or choose any screen to start there.
The first 3 steps of every flow are open. Pro opens every screen of every template, live in each style, and the SwiftUI to build them.
01 · Onboarding
First Run
Three welcome pages, the reminders permission, Sign in with Apple and a free week of Stillwater Plus, then Today.
7 Screens12 Steps02 · Core Journey
Check In And Breathe
Log today's mood in one tap, add feelings and a note, then breathe through a full Unwind session.
5 Screens11 Steps03 · Core Journey
See What Helps
Read the week in the journal, open yesterday's check-in, then pick up the sleep course and finish a lesson.
5 Screens8 Steps04 · Profile And Settings
Profile And Settings
Move the daily reminder, change the theme, subscribe to Plus and sign out.
5 Screens10 Steps02
Screens
Every screen in Stillwater, 19 in all, each a SwiftUI view in the Xcode project. In Ember, Editorial and Candy, light and dark.
First run
Welcome, permissions and the questions that set the app up.
- A Quiet Minute
The first welcome page introduces the daily check-in and a few slow breaths.
Built onWelcomeOnboarding
- Breathe With The Orb
The second welcome page introduces six guided breathing patterns, each with a caption and a count.
Built onWelcomeOnboarding
- See What Helps
The last welcome page explains what the journal and short courses show, and Get started moves on.
Built onWelcomeOnboarding
- Reminders
Allow one gentle daily check-in reminder, or skip it for now.
Built onOnboarding
Account and subscription
Sign in, verification and the paywall.
- Sign In
Sign in with Apple to back up check-ins, or continue without an account.
- Stillwater Plus
Start a free week on the yearly plan, or pick monthly, to unlock every pattern, course and the full history.
Built onPaywall
Tabs
Where the app opens, one screen per tab.
- Today
Check in with a face, see the session suggested for this time of day and keep the streak going.
- Breathe
Start the pattern suggested for now or browse all six breathing patterns.
- Learn
Pick up the current course at its next lesson or browse every course.
- Journal
See the week's average mood, each day as a bar, what helps and every check-in.
Details and sheets
What the tabs push and present.
- Check-in
Pick a mood, tag what's behind it and add a note to today's check-in.
Built onMood
- Breathing Pattern
Read a pattern's rhythm and steps, set the rounds and begin a session.
Built onApp ShellNotifications
- Session
Breathe with the orb while the caption, the count and the rhythm blocks guide each phase, then see the summary.
Built onBreathe
- Course
See a course's progress and every lesson, and continue with the next one.
Built onApp Shell
- Lesson
Read a lesson with its key idea and a practice, then mark it finished.
Built onReaderNotificationsApp Shell
- Journal Entry
Read one check-in: its mood, feelings, note and what else happened that day.
Built onApp Shell
Profile and settings
The account, preferences, the subscription and sign out.
- Profile
Manage Plus, the daily reminder, session options, the theme and data, and sign out.
- Remind Me At
Choose when the daily check-in reminder arrives.
- Theme
Switch between the Ember, Editorial and Candy presets and pick light, dark or system.
Built onApp Shell
03
Built from the library
The library screens this template wires together, in the order someone meets them. Each one installs on its own too.
First run
Welcome pages, a reminders request, Sign in with Apple and the Stillwater Plus paywall. Runs once, then records completion.
Tabs
Today, Breathe, Learn, Journal and Profile on the App Shell. Today's check-in is built on the mood orb; Journal starts from a ghost state.
From the tabs
Breathing sessions open full screen, lessons push the reader, and a logged mood lands as a toast with Undo.
04
What's included
SwiftUI source you own, built on Apple frameworks only.
- A daily mood check-in around the orb, with feelings and notes
- Guided breathing patterns with a session player, haptics and a summary
- Short courses with a reader that reads lessons aloud
- A journal with face-capped mood bars, insights and an empty state
- Mood streak and Start breathing widgets, with check-in buttons that work without opening the app
Includes
Onboarding, Welcome, Purchase, Paywall, App Shell, Lessons, Mood, Breathe, Reader, Projects, Notifications, Settings. Installed together, automatically.
Requires
In-App Purchase capability
In the Build Kit
Ember (style), Meditation and Sleep (brief). Your agent builds around this template in the same design.
05
Implementation notes
How it behaves, what it handles, and the decisions behind it.
MeditationApp is one root view. On first launch it shows the Onboarding screen: three welcome pages, a reminders request, then the Purchase screen's StoreKit 2 paywall for Stillwater Plus as the handoff. Purchasing, restoring or closing the paywall 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 five tabs. Today is a mood check-in around the mood orb with five faces and the session suggested for now; logging a mood lands as a toast with Undo, and "Add feelings and a note" opens the full Mood screen. Breathe lists patterns that open the guided Breathe session full screen. Learn lists short courses that push the Reader. Journal shows the week as face-capped bars and starts from a ghost state. Profile is Settings, where Manage subscription reopens the paywall and Sign out returns the app to first run.
The downloadable Xcode project goes further: SwiftData history, a session player with rounds, haptics and a summary, course and lesson screens with read-aloud, journal insights, a daily reminder, deep links, and a mood streak widget that logs a check-in without opening the app.
Adapting it
- Products: pass your App Store Connect ids as
productIDs. Until they exist, the paywall shows its designed "plans didn't load" state and its close button still finishes onboarding. - Completion key:
completionKeyis theUserDefaultskey the flow writes and the root reads. Change it to show onboarding to everyone again. - Content: moods, patterns and courses live in
StillwaterSampleat the top ofMeditationApp.swift; the session isPhaseOrbExample, the full check-inNoiseOrbExampleand the lessonMorphNavScreenExample. Swap each for your own store. - Theme: without a brand the app wears Stillwater Ember. Set
.environment(\.spTheme, SPBrandTheme(.stillwaterEditorial))or.stillwaterCandyonMeditationAppto re-skin every tab.
Notes
- Not
@main: putMeditationApp()in your ownWindowGroup. - Enable the In-App Purchase capability before testing purchases.
- Lesson copy is general wellbeing guidance, not medical advice. Have anything health-related you add reviewed.
- Four previews ship with the file: first run, home in Ember dark, Editorial and Candy.
06
Keep building
Pieces that work well next to this one.