A minimalist iOS app that interrupts overthinking loops and returns users to real life in under 60 seconds. Built with SwiftUI, Groq LLM, and SwiftData.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
When stuck in a thought loop, users type one repeating thought and receive a personalized Body/Mind/Action reset powered by AI. The app then encourages them to close it and return to life.
RESET is intentionally anti-engagement — no feed, no notifications, no streaks. Every screen has one action and leads toward closing the app.
- User taps RESET NOW
- Types one repeating thought
- AI analyzes the loop and generates a personalized intervention
- User receives three reset cards: Body, Mind, Action
- App encourages them to leave the phone
AI Integration Integrated Groq's LLM API (llama-3.1-8b-instant) via URLSession with a custom prompt engineering system. Responses are structured as JSON and decoded into typed Swift models.
RAG-style Personalization Built a context-aware prompt pipeline that fetches the user's last 5 sessions from SwiftData and injects them as context into each new AI request. Responses improve in relevance over time without a vector database.
Local Persistence Used SwiftData to store reset sessions on-device. No backend or user account required — privacy-first by design.
Architecture MVVM with a single shared ViewModel injected via @EnvironmentObject. Navigation is driven by a NavigationPath owned by the ViewModel, keeping all routing logic out of views.
Anti-engagement Design Intentionally designed to get users off their phone. Every screen has one action and leads toward closing the app.
- Swift + SwiftUI (iOS 17+)
- MVVM architecture
- NavigationStack with enum-based routing
- Groq LLM API (llama-3.1-8b-instant)
- SwiftData for local session persistence
- async/await for all network and data operations
- Single shared ViewModel injected via @EnvironmentObject — avoids prop drilling across 5 screens
- Linear NavigationPath owned by ViewModel — all routing logic stays out of views
- Local-first storage with SwiftData — no backend, no auth, no privacy concerns
- Session history injected into AI prompt — personalization without vector database complexity
- Clone the repo
- Create
Config.xcconfigand add your Groq API key: GROQ_API_KEY = "" - Run on iOS 17+ simulator or device
Most wellness apps maximize engagement. RESET is built around the opposite idea — use it briefly, feel better, move on. I wanted to build a tool that helps people disengage from thought loops instead of deepening them.







