What I'm Building
I’m building an app with the following concept:
- Users are asked how much money they want to put at stake for the month, and a payment authorization is set up in advance.
- Running distance is tracked via HealthKit using an iPhone or Apple Watch.
- Because money is on the line, users are effectively forced to run.
- This (hopefully) contributes to improving exercise habits in Japan.
- If the user fails to reach their self-defined distance goal, the pre-committed money is paid to the operator.
This is based on the concept of commitment in psychology and economics.
A similar app exists overseas called Stickk.
What Went Well
- HealthKit integration probably works. Let me test it already.
- The app icon is done.
There isn’t much I can do right now.
Maybe create a public Notion page, or think about marketing strategies.
I haven’t written any tests.
Right — I should write tests.
Status
- Apple Developer Program: Registered on 1/23, not yet activated
- App status: MVP is basically complete, waiting for Sign in with Apple
Completed Features
✅ Stripe Payments
- PaymentSheet integration completed
- Authorization-only flow using
capture_method=manual - Successful testing on a real device
- Fixed PaymentSheet presentation error (handled topmost ViewController)
✅ HealthKit Integration
- Implemented running data retrieval
- Added
NSHealthShareUsageDescriptionto Info.plist - Successfully authorized and fetched data on a real device
✅ Batch Processing (Edge Functions)
-
process-expired-challenges: evaluates 28-day challenges and handles payments -
update-progress: updates user progress - Deployed to Supabase
✅ GitHub Actions
.github/workflows/process-challenges.yml- Runs automatically every day at 00:00 UTC
- Secrets configured (
SUPABASE_ANON_KEY)
✅ UI Improvements
- Countdown display for remaining days/hours
- Fixed deposit amount display
- Changed challenge duration from monthly to 28 days
✅ App Store Preparation
- Privacy policy created (
docs/privacy-policy.md) - App Store description written (
docs/appstore-description.md) - App icon set (1024x1024)
Pending Tasks
⏳ Sign in with Apple
- Blocker: Waiting for Apple Developer Program approval
- Tasks after approval:
- Enable Sign in with Apple in Xcode Capabilities
- Implement Supabase Auth integration
- Update RLS policies
⏳ Database Persistence Testing
- Currently blocked by RLS (writes not allowed without authentication)
- Temporarily testing with a dev user ID
⏳ TestFlight Distribution
- To be done after Developer Program approval
⏳ App Store Submission
- To be submitted after all features are implemented and tested
Tech Stack
| Category | Technology |
|---|---|
| iOS | iOS 17+, SwiftUI |
| Auth | Sign in with Apple (planned) |
| Database | Supabase |
| Payments | Stripe |
| Activity Data | HealthKit |
| Batch Jobs | Supabase Edge Functions |
| CI/CD | GitHub Actions |
Key File Changes
1/23
-
StripeAuthorizer.swift– Stripe PaymentSheet integration -
Challenge.swift– AddedstripePaymentIntentId, remaining time calculation -
ChallengeView.swift– Added countdown UI -
SupabaseChallengeStore.swift– Dev user ID support -
Info.plist– Added HealthKit configuration - Created and deployed Edge Functions
- Configured GitHub Actions
1/24
-
StripeAuthorizer.swift– Fixed PaymentSheet presentation issue- Updated to retrieve the topmost ViewController
Next Actions
- Wait for Developer Program approval (up to 48 hours)
- After approval:
- Implement Sign in with Apple
- Integrate Supabase Auth
- Configure RLS policies
- Distribute via TestFlight
- Submit to the App Store
Notes
- Apple Developer Program: $99/year (registered on 1/23)

Top comments (0)