Inspiration
I built AimYear because I needed it myself. I'd set yearly goals every January and forget them by February. So I made a simple app — and then I started using it.
That's when it clicked. The value isn't in the tracking. It's in seeing your goals every single day. When I open the app each morning, I see the aims I set for the year. Even on days when I can't act on all of them, just reading them rewires how I plan my day, my week. I start making small decisions differently — choosing the stairs, skipping an impulse purchase, texting a friend.
And when I have a bad day — and I do — I mark it honestly and move on. Looking at my history, one "Bad" day surrounded by weeks of "Good" ones barely registers. I can always continue. That feeling — that a small fail doesn't mean starting over — is what got me to December with real results for the first time.
What it does
AimYear lets you set up to 15 aims across 5 life areas: Health, Finance, Relations, Work, and Happiness. Every day, you mark each aim as Good, Bad, or Nothing — no complex scoring, no friction. You see your progress over time through charts and streaks.
The constraint is the feature. By limiting goals and simplifying tracking, AimYear forces clarity.
How I built it
- Mobile app — built with React Native for cross-platform iOS/Android support
- Landing page — static HTML/CSS hosted on AWS S3 + CloudFront (aimyear.com)
- Backend — cloud sync powered by a serverless API for premium users
- Design — each life area has its own color system and icon set, making the UI feel personal yet consistent
The onboarding flow walks users through the 5 life areas with curated aim suggestions, so they can start tracking immediately without decision paralysis.
Challenges I ran into
- Keeping it simple. The hardest design decisions were about what to leave out. Every feature request (weekly goals, sub-tasks, social sharing) had to pass the filter: "Does this help someone check in daily in under 60 seconds?"
- The "Nothing" option. Most trackers are binary — done or not done. Adding a neutral "Nothing" state was essential. Some days you genuinely don't engage with a goal, and that's different from failing. It removes guilt and keeps you honest.
- Making daily check-ins feel encouraging, not punishing. The progress view had to show that a streak of good days isn't ruined by one bad one. The data had to tell you "keep going," not "you failed."
What I learned
- The biggest value isn't tracking — it's daily awareness. Just reopening your yearly goals every day changes how you think, plan, and act. It helps align your week even when today isn't the perfect day to work on a specific goal.
- Resilience matters more than perfection. Designing for "what happens after a bad day" was more important than optimizing for good days. Seeing that you can continue after a setback is what makes the difference between quitting in March and succeeding in December.
- Constraints drive better products. Limiting aims to 15 forced me to prioritize — which turned out to be the actual skill behind achieving goals.
What's next
- Web app — access your aims from any browser
- AI insights — personalized patterns and recommendations based on your tracking history
- Year-in-review — an annual summary showing growth across all 5 life areas
What's next for AimYear
Built With
- amazon-web-services
- aws-cloudfront
- claude
- css
- dart
- fastlane
- firebase
- flutter
- html
- javascript
Log in or sign up for Devpost to join the conversation.