Inspiration

Many people have big dreams — traveling abroad, launching a creative career, running a marathon — but the gap between "I want to" and "I did it" feels overwhelming. Research in behavioral psychology shows that the #1 reason people abandon goals is not a lack of motivation, but a lack of actionable structure. We were inspired by the concept of micro-habits: the idea that even 5 minutes of focused daily action, compounded over time, can lead to extraordinary results. We wanted to build an app that transforms the abstract feeling of "dreaming" into a concrete, rewarding daily routine — one small step at a time.
What it does
Lux ~ Your Dream Path Assistant ~ is an iOS app that turns your dreams into achievable daily micro-actions.

Users start by describing their dream — whether it's a solo trip to Europe, learning to code, or saving $10,000 — and selecting a category (Travel, Career, Health, Finance, Creative, Relationships, Learning, or Personal Growth) and timeline (3, 6, or 12 months). The app's AI engine (powered by Qwen) then generates a personalized action plan of 5–7 specific, measurable micro-tasks tailored to that dream.
Each day, users receive bite-sized challenges (5–30 minutes each) drawn from their plan. Completing challenges earns points, builds streaks, and unlocks badges. A rich celebration system with confetti animations and haptic feedback makes every small win feel rewarding. The home screen shows real-time progress across all active dreams, and daily push notifications keep users on track without being intrusive.
The core philosophy: dream big, act small, stay consistent.
How we built it
We built Lux as a native iOS application using SwiftUI and Swift 5.9, targeting iOS 17+.
- Data Persistence: We used Apple's SwiftData framework for on-device data modeling and persistence, with a rich schema covering Users, Dreams, MicroActions, Challenges, and Badges — all linked through relationships and cascade delete rules.
- Architecture: The app follows a clean MVVM pattern with an
@ObservableAppViewModel managing state, and separate ViewModels for the onboarding flow. - AI-Powered Task Generation: When a user creates a new dream, the app calls Alibaba Cloud's Qwen (qwen-plus) via the DashScope API to generate personalized micro-actions. The AI considers the dream title, description, category, and timeline to produce tasks with appropriate difficulty and frequency. A robust fallback system with hand-curated task templates ensures the app works reliably even without network connectivity.
- Gamification System: Points, streaks, difficulty-based rewards (Easy/Medium/Hard), and an unlockable badge system (First Step, Week Warrior, Dream Starter, Halfway Hero, Month Master) keep users engaged.
- UX Polish: We invested heavily in user experience — a 9-step onboarding flow introduces each feature gradually, haptic feedback (via UIKit's feedback generators) provides tactile responses to every interaction, custom confetti animations celebrate achievements, and daily notification reminders protect streaks.
- Design System: A comprehensive design system with custom color palettes, gradients, typography scales, and spacing constants ensures visual consistency across every screen.
Challenges we ran into
- AI Response Reliability: Getting the Qwen API to consistently return well-structured JSON was tricky. We had to implement regex-based JSON extraction from the response content, add validation and clamping for every field (points, difficulty, duration), and build a complete fallback task template system for all 8 categories to guarantee a good experience regardless of API behavior.
- SwiftData Relationship Management: Modeling the relationships between Dreams, MicroActions, and Challenges with proper cascade delete rules while keeping the ViewModel reactive required careful architectural decisions. Ensuring data consistency when completing challenges and updating dream progress simultaneously was a non-trivial state management problem.
- Onboarding Flow Complexity: Designing a 9-step onboarding that felt engaging rather than tedious — with interactive examples, animations, and the ability to create a real dream and complete a first challenge before reaching the home screen — required many iterations.
- Progress Calculation: Accurately calculating dream progress from completed challenges across multiple micro-actions with different frequencies (daily vs. weekly) needed careful logic to avoid edge cases.
Accomplishments that we're proud of
- The 5-minute promise: Every challenge in the app genuinely takes 5–30 minutes. We worked hard to ensure the AI generates realistic, actionable tasks — not vague motivational fluff.
- Zero-friction onboarding to first action: Users go from downloading the app to completing their first real challenge in under 2 minutes. The onboarding doesn't just explain the app — it gets users to take their first step toward their dream right there.
- Seamless offline experience: Thanks to SwiftData and the fallback task templates, the app works completely offline. AI-generated plans are a bonus, not a requirement.
- Polished feel: Haptic feedback on every interaction, confetti celebrations, smooth SwiftUI transitions, and a warm color palette make the app feel premium and joyful to use.
- A comprehensive design system: Every color, font size, spacing value, and border radius is defined in a centralized constants file, making the UI consistent and maintainable.
What we learned
- SwiftData is powerful but young: It simplifies Core Data significantly, but we encountered nuances around relationship management and batch operations that required creative workarounds.
- AI as a feature enhancer, not a dependency: By designing the app to work perfectly without AI and treating Qwen-generated tasks as an enhancement, we built a much more resilient product. This "AI-optional" pattern is something we'll carry into future projects.
- Gamification requires balance: Too few rewards and users lose interest; too many and they feel meaningless. We iterated on point values, badge unlock thresholds, and streak mechanics to find the right motivational curve.
- Micro-actions really work: During development, we dogfooded the app for our own goals — and the daily 5-minute habit genuinely moved the needle. Building something we personally use made every design decision more intentional.
What's next for Lux ~ Your Dream Path Assistant ~
- RevenueCat Integration: Implementing a premium tier with RevenueCat for advanced features like unlimited dreams, AI-powered plan regeneration, detailed analytics dashboards, and custom notification schedules.
- Social Features: Adding the ability to share dreams and progress with friends, create accountability groups, and celebrate each other's milestones.
- Enhanced AI Coaching: Using conversation-style AI interactions to dynamically adjust plans based on user progress, provide encouragement when streaks are at risk, and suggest new dreams based on completed ones.
- Widget Support: iOS home screen and Lock Screen widgets showing today's challenge, current streak, and progress at a glance.
- Apple Watch Companion: A lightweight watchOS app for completing quick challenges and tracking streaks on the go.
- Localization: Multi-language support starting with Japanese, Spanish, and Portuguese to reach a global community of dreamers.
Built With
- qwen
- revenuecat
- swift
Log in or sign up for Devpost to join the conversation.