Inspiration

After getting extremely frustrated from keyword research and looking at trends that I wasn’t interested in, I took a walk to clear my head.

During the walk, my mood lifted and I got the idea to help people brighten their own day by doing activities that uplift them.

The problem was that by this time, there was only a week left in the competition and I was really worried about the iOS App Store approval process.

What it does

My app promotes mental health by helping users have a better day.

It reminds the user to do more of the activities that make them feel positive.

The user writes the activities that recharge them. The app reminds them to do those each day.

The user goes into the app to log which activities they did and gets a score for the day. Then it resets daily so they can do it again tomorrow.

Mental health

By doing more of their uplifting activities each day, the user will be in a better mood and have a positive outlook in life.

The app is pretty simple but the result can be huge for someone who’s dealing with a lot.

How we built it

Coding

Since I’m a developer, I had a relatively simple time with the code.

Still, I was rusty because I’m more of a full-time content creator than developer. With the help of AI, every coding obstacle I ran into was obliterated.

A Better Day is an iOS app so I used Swift for code, SwiftUI to build the user interface and SwiftData for the data storage. All of it was done inside the Xcode app.

I had the core features built in a day!

Design

However, I was dreading the app design. I’m not a designer so I was going in blind.

I'm not a designer

I tried to use AI but it was difficult to put into words (a prompt) what I envisioned so I didn’t get the results I wanted..

Eventually, I decided to use some pre-made illustration assets that were duotone (blue and white) and I based my entire app design around that theme.

It looks passable in my opinion and I decided not to dwell on it given how little time I had left.

For the app icon, I used an illustration from the same site and called it a day. I knew I could easily change it in a future update.

In-App Purchases

Deciding on what to make as a paid feature was very difficult. After all, this was my first time launching an in-app purchase!

I’ll tell you how I decided on what to sell in the next section, but for now let me talk about my experience using RevenueCat to integrate my in-app purchase.

My experience using RevenueCat

I started by following the RevenueCat documentation to set up my purchasable product in App Store Connect. (This is the web portal where you configure your app listing)

Then I configured how I wanted to offer those products inside RevenueCat.

Paywall setup

Finally, I used their paywall templates to set up working paywall to display my product in a matter of minutes.

Using the docs once again, I added the RevenueCat SDK into my project to display the paywall.

I didn’t have to write any purchasing code at all; that was all handled for me.

All I had to do was check if the user was entitled to use the paid feature. Speaking of that, let me explain how I decided what to sell in my app.

By the way, for more details on the build process, I recorded a vlog here: link.

Challenges that we ran into

I can’t charge for this…

I had a lot of trouble deciding what to sell because I felt what I was building wasn’t valuable enough to ask for money.

I’m sure this must be a common fear. We often undervalue ourselves and what we produce.

Stats and charts

So I started thinking about building a whole analytics and stats feature with fancy charts that I could charge to unlock.

However, I quickly realized that it’d be a risk to attempt to build this with such strict timelines.

Ads

Next, I tried to integrate ads into the app so I could have an in-app purchase to unlock the ad-free version of the app.

I ran into a technical challenge with integrating the ad code so I switched gears.

Reminders

Finally I decided to build a reminders feature and lock that behind a paywall.

These reminders are notifications sent to the user to keep those energizing activities top of mind.

I still feel a bit icky about charging for it because I consider it a core feature so I decided to price it as low as possible.

That was actually the third challenge that I overcame.

I don’t have an app idea

The first challenge was simply deciding what to build!

App research on trends and keywords

Because I wanted to try to make money, I focused on doing a lot of app research first.

I looked at industry reports to identify trends I could ride.

I researched low competition keywords in those niches that I could potentially target with my app.

Getting frustrated with research

All of this research led me to either inconclusive ideas or app ideas that I didn’t want to build.

If I’m not interested in the topic of the app, it’s very hard (for me) to find the motivation to work on it, especially since this is a side project.

I don’t know about you, but when there’s too many variables and no clear answer, I get decision fatigue.

It’s easier for me just to procrastinate or avoid the whole thing altogether. So that’s what I did for a week and a half.

Out of that frustration, I went for a walk and discovered the idea for the app.

Now I faced a new problem: There’s no time left in the competition.

You have one week

The second challenge was the time constraint.

By the time I committed to the app idea, I only had about a week left.

To put this into perspective, it took us 1 year to publish our last app!

In the next section I explain how we got this done within one week.

But first, I want to explain the biggest challenge I faced. It’s very personal.

Failing in public

Is my reputation at stake?

I’ve been an iOS content creator for over 10 years so my identity is pretty set on being a teacher and educator.

I was really worried that building in public would turn into failing in public and ultimately, damage my online reputation and credibility.

Overcoming my fear

I had to overcome this fear and also face the reality that I didn’t have the technical chops that I had over 10 years ago when I worked as a full time developer.

During this competition, I had to be vulnerable and admit where I struggled, where I made mistakes and where I needed help.

People were very supportive of my journey and I’m so glad for that.

It was a grounding experience and I learned how to be a beginner again.

Accomplishments that we’re proud of

Not giving up

There were multiple times during this competition where I was close to throwing in the towel.

My mind was sabotaging me by thinking of different ways I’d fail and various reasons why it’s ok to drop out.

I think it’s a huge accomplishment to simply ignore your negative thoughts and to push through!

The app went from idea to app store in 4 days

Our last app took 1 year to go from idea to app store.

In order to get this app out the door, I had to simplify like my life depended on it.

Learning to be imperfect

I got rid of any feature that wasn’t part of the core mechanic.

I cut corners with my code and allowed myself to be messy.

I didn’t dwell on the app design and went with the first thing that I felt ok with.

I didn’t even add any analytics tracking for fear of getting rejected by incorrectly filling in the privacy nutrition labels (a requirement of the Apple App Store).

This accomplishment broke through my self limiting beliefs and showed me what’s possible when I set my mind to a single goal.

I made many new connections

By building in public, I heard from many other indie app developers who were more experienced.

Making friends

They offered advice, different perspectives and encouragement. I replied to many people and started some cool friendships!

A real MVP

I’m proud that I was able to let go of my perfectionism and launch the app with so few features.

This MVP (minimum viable product) really just contains the single core feature.

To me, it feels like it’s not ready to be released but this must be what people mean when they say, “If you’re not embarrassed by your mvp, you’ve launched too late”.

What we learned

Coding is not the hard part anymore

As I built this app, I used AI to help with a variety of tasks.

AI is a game changer

AI helped with code snippets for various things.

AI also helped with non-technical questions that were related to App Store rules and guidelines.

It made me realize that app development is very accessible now and coding is no longer the barrier to entry.

Advertising and marketing is important

In doing my app research, I realized that what separates successful apps is their ability to get in front of people.

Marketing and advertising for apps is an area that I’m starting to learn more about.

Building in public is fun

Getting interaction during the app journey really helps when you’re feeling discouraged.

Encouragement and motivation

Seeing that there are people who are cheering you on gives you a sense that someone cares about what you’re doing.

At the very least, the people you’re interacting with during your journey are people who will check out your app when it’s published.

The indie app dev community is friendly and inviting

Many experienced indie app developers commented on my build in public posts and everyone was extremely positive and encouraging.

I feel welcome and motivated to share more of my indie app journey!

Making money with apps is possible for indies

I worked at an agency before

I was a consultant at a large agency that built iOS apps for clients in the mid-five figure range.

I believed it took many people and money to make it

I saw how much work, how much time and how many people it took to get an app out the door.

This actually discouraged me from building my own apps and I had a false mindset that you needed a lot of resources to make any money in the App Store.

After immersing myself in the indie app dev community, I now realize that there’s still a lot of opportunities for solo devs and small teams to build compelling apps that make money.

We have a lot to learn

My eyes opened to how much there is to learn in this space.

Becoming a beginner again

For example, how to build a product that users want to come back to, how to collect user feedback and app marketing just to name a few.

What we’re capable of doing

This competition challenged my thinking on what I’m capable of doing.

I joined with a healthy dose of skepticism. I was hopeful but cautious.

Transformation

The experience has been transformative and helped me break through some self limiting beliefs.

I actually feel like my next app is just around the corner!

What’s next for A Better Day

Analytics

One of the things I need to add as soon as possible is analytics tracking.

Without it, I’m flying blind and I don’t know how my users are going through the app.

It’s hard to improve an app if you don’t have any data.

Stats

I want to allow users to see their progress over time via charts.

Seeing the numbers and streaks increasing also gives motivation to continue.

Feedback mechanism

Right now, users can launch their email compose window from within the app, but I want to add an integrated way for users to type in their feedback and to suggest new features.

Robust reminders

The reminders is a paid feature and I want to enhance it by adding more flexibility into the notification timings and text.

Gamification

I think gamification adds value to any personal development app.

I want to add streaks and perhaps a few social interaction features for people that want to use them.

Subscriptions

I hope to build the app up to a point where there are enough useful features to justify charging a subscription for.

That will help fund continued development of the app.

Continue building in public

I’m going to continue sharing my journey in public for all of the reasons I've listed below.

Built With

Share this project:

Updates

Submission history