How I'm Building 4 Apps (At The Same Time)
By Chris Raroque
Summary
Topics Covered
- Focus one app weekly
- Opus 4.5 masters calendar layouts
- Multi-app work prevents burnout
- UIKit trumps SwiftUI for gestures
- AI builds integrations in hours
Full Transcript
Welcome to the video. If you're new here, my name is Chris and I build productivity apps. And a common question
productivity apps. And a common question I get is, how are you juggling all of these apps? How are you spending your
these apps? How are you spending your time? And I think the best way to answer
time? And I think the best way to answer that is to just show you guys what I do in a typical week as a solo developer working on multiple apps, how I structure my time, what tools I'm using, and how I move quickly between projects.
If you're new here, my name is Chris and I build productivity apps from Amy to Luna to Ellie. And I document everything I'm learning and try to share it with you guys on this channel. I'll be
honest, this week was a bit more productive than usual because Opus 4.5, which is this new AI model, philanthropic, just came out and I was very excited to just throw it on all of these problems that I wanted to solve.
Every single week, I pick one app to focus on. This is where all of the major
focus on. This is where all of the major deep work is going to go into. And then
with whatever time I have left, I try to sprinkle in work on some of the other apps that I have. The last few weeks, my major focus has been on Amy, which is my new calorie tracking app. And it's
because I was working really hard to get it launched and get that first revenue.
But now that it's launched and a lot more stable, I'm shifting my focus this week back to Ellie, which is my daily planning app. If you look at the plan
planning app. If you look at the plan this week, most of the major stuff revolves around making improvements to Ellie. And then there's a couple of
Ellie. And then there's a couple of things for Amy and Luna, which is my budgeting app, kind of sprinkled in. But
that's how I plan my week. So, let's see how much I actually get done. So, first
up was an improvement to the Ellie iOS app that I wanted to work on, which was the calendar layout engine. So Ellie's
daily planning app and there is this time box feature where you can see your calendar events and all of the tasks that you scheduled in one calendar layout. If you've never built a calendar
layout. If you've never built a calendar app before, you probably think that displaying stuff on a calendar is pretty simple, but it is really not. The way
that you choose to lay out the calendar events on the page, especially when there's a ton of them on there, is actually really challenging to get right. There's a ton of algorithms and
right. There's a ton of algorithms and solutions that people have come up with over the years just to solve this problem. Here's what it looks like right
problem. Here's what it looks like right now when you have a bunch of events lined up. It just does not look good.
lined up. It just does not look good.
They're kind of just stacked right next to each other. You can't really read it.
It's just not a good experience. And
I've tried rewriting this so many times.
Like anytime there's a new AI model that comes out, I try to throw it at this problem and see, can you improve the calendar layout algorithm? Can you make this more readable? And every single time so far, AI has not done a good job of that. And since we have a new model
of that. And since we have a new model that came out, which was Claude Opus 4.5, and I'd heard really good things, I was excited to try it against this problem. A quick note on my setup, I'm
problem. A quick note on my setup, I'm using Claude code inside of cursor. So I
drag the terminal on the right. I can
see my files on the left and I can see claude code on the right. This is just how I set everything up. I got a bunch of videos on my channel showing how I use cloud code and cursor. So, I'll
probably leave a link in the description if you want to check those out. But
these are the tools I'm using and this is the exact setup that I'm using right now. Anyways, I was not expecting much
now. Anyways, I was not expecting much from this because again, other models have failed at this problem. But to my surprise, after two or three prompts, it actually came up with a very good solution. So again, here's the old
solution. So again, here's the old version with the initial layout algorithm. And then here's the updated
algorithm. And then here's the updated version that it came up with. And as you can see, it is much more readable. This
is way closer to what you get with Google calendar for example. I think in total it took about 2 hours like 30 minutes to come up with the initial solution and then another hour and a half for me to test and make sure everything was performing correctly. And
more importantly it showed me wow okay Opus 4.5 is a really good model. So I
was already excited to test it on the other stuff I had planned for the week.
I actually thought this was going to take the entire day but since it didn't I was like okay might as well just work on another Ellie feature right now. The
next thing I worked on was a huge overhaul of the drag and drop system in Ellie. Ellie has a bunch of pages where
Ellie. Ellie has a bunch of pages where you can hold and drag tasks and do all of these interactions. And currently the system does work. It's using a lot of Apple's default drag and drop stuff. But
one of the negatives is I don't have a lot of control over things. If you're
using Apple default hold and drag, there's this little preview that appears. You have almost no control over
appears. You have almost no control over the size and the look of that preview.
Or when I let go, how the preview animates back to the original slot.
Absolutely no control over that. Over
the last couple months, this stuff has been bothering me and I decided I think it's time to just rewrite the whole system from scratch. I was super impressed with how Claude Code handled all of the calendar stuff. So, I was kind of curious, okay, how is it going
to do with drag and drop? Like, this
stuff is a bit complex. After about an hour, the refactor was going pretty well until I started hitting some major roadblocks. The reason there were issues
roadblocks. The reason there were issues and why this is so complex in general is because Swift UI drag and drop is just not that good. Let's take this page for example. On the surface, it looks really
example. On the surface, it looks really simple. You can hold and drag a task and
simple. You can hold and drag a task and reorder it. But what you don't see is
reorder it. But what you don't see is there's actually six gestures on this page. You need to be able to long press
page. You need to be able to long press hold to then activate a drag. It needs
to be able to support the drag. You
should be able to tap the task. It
should be able to swipe to delete. And
the page needs to be fully scrollable while your finger is on one of these cards. So, there's a lot of conflicting
cards. So, there's a lot of conflicting gestures going on. Now, the problem is every time I get two or three of these gestures working, the other two or three gestures start failing. And this is a pretty common problem I'm hearing for
Swift developers. Gestures are really
Swift developers. Gestures are really easy when it's just two or three things.
But then once you go past that, that's where things start getting complicated and Swift UI just starts failing. So I
spent a lot of time on this, I rewrote the code a lot with Claude code, but every time I got really close, something ended up breaking. So I decided to pause for the day, try something different, and pick this back up later. For day
two, I decided to take a break from drag and drop and honestly just take a break from Ellie in general and switch over to a different app. I think this is one of the ways that I prevent myself from getting burnt out. If I only had one app
that I was working on, I would get so frustrated and bored because some of these problems do take multiple days to solve. Being able to hop between
solve. Being able to hop between multiple apps does keep things interesting for me. I decided to spend a little bit more time working on Luna, which is my budgeting app. There were a couple of small requests that I needed to handle, like people were requesting some currencies that weren't supported.
Some of these things took like 5 minutes to do with Cloud Code. But there was a bigger feature that I wanted to ship, and that was interactive charts. Luna
has this reports feature where you can see a breakdown of your spending, and there's these beautiful charts that I built. But the problem is they're not
built. But the problem is they're not interactive. When you touch them,
interactive. When you touch them, there's just a little sheet that pops up that says these will be interactive someday. And it's because when I
someday. And it's because when I originally built this, the AI models were just not good enough to build interactive charts that were performant.
So I had to put a pause on that feature.
So I threw Claude code at it and it was doing a really good job. But then I ran into the same exact issue that I was facing with Ellie's drag and drop system. I got the charts working. You
system. I got the charts working. You
can hold and drag to see the different values of the chart, but the page scroll was broken. So when I tried to scroll
was broken. So when I tried to scroll the page and if my finger was on one of the charts, it just wasn't working.
What's interesting though is that Cloud Code actually suggested, hey, what if you don't use Swift UI for the gestures and instead use UI Kit? If you're not familiar, UI Kit is how you built apps before Swift UI existed. Swift UI Kit's
basically a nice wrapper around UI Kit, which makes it much more enjoyable to use. But one of the trade-offs is you do
use. But one of the trade-offs is you do lose a lot of control. I personally
avoid using UI Kit because I just hate writing code with UI Kit. I love Swift UI, but now that I'm vibe coding and I'm not the one writing code myself, I thought, you know what? Why don't I just let Claude Code use UI Kit this time?
So, I had it switched to UI Kit and everything started working immediately.
You can now drag along the chart and the page scroll actually does work, too. No
more conflicting gestures. And that's
when it hit me. What if I just did the same exact thing with Ellie? And I did all the gestures with UI kit instead of trying to force it in Swift UI. Once I
shipped the charts in Luna, I swapped back to Ellie and decided to try to port everything to UI Kit. And after about 2 hours, everything was working so smoothly. All six gestures on the page
smoothly. All six gestures on the page were functioning. There were no gesture
were functioning. There were no gesture conflicts. Everything was animating so
conflicts. Everything was animating so smoothly. Even the time box page, which
smoothly. Even the time box page, which is pretty complicated. You can drag a task from the list into the calendar to time box it. All of this was working so smoothly. There are so many animations
smoothly. There are so many animations happening on this page. Even the ability for it to autocroll when you're kind of at the edges of the time box. I was so surprised at how well everything was working. So, I spent the rest of the day
working. So, I spent the rest of the day polishing and making sure everything was working well. But in the end, we did
working well. But in the end, we did completely refactor the drag and drop system, and it just feels so much better than it did when we were using the Apple default drag and drop stuff. This was a huge lesson for me moving forward. I am
only going to be using UI Kit when I need to do complex drag and drop stuff.
I actually tweeted it out and I got a lot of confirmation from good developers who said the exact same thing. They were
like, "Yeah, don't try to use Swift UI for drag and drop stuff. Just use UI Kit." I was so impressed with how Claude
Kit." I was so impressed with how Claude Code and Opus 4.5 was performing on the drag and drop the calendar stuff. I
wanted to see if it can handle some other complex stuff that I was struggling with in the past and specifically working on the Ellie integration. So Ellie has the ability to
integration. So Ellie has the ability to hook into notion into Slack into all of these other services. You can import tasks directly from Notion into Ellie for example. Little bit of backstory.
for example. Little bit of backstory.
When I worked on this integration, there was no AI at the time. So I had to do everything by hand and it was such a nightmare to build. There were a ton of edge cases because notion has a billion fields to work with. So things were
constantly breaking. The sync wouldn't
constantly breaking. The sync wouldn't work in some cases. It's just a very fragile system because it is so complex.
One of the major things I wanted to do was migrate the notion integration to support web hooks. Web hooks are basically a way for apps like notion to tell Ellie that there is updated information that it should pull. without
web hooks, which is the way it's currently working. I actually have to
currently working. I actually have to hit up notion every single minute and check is there any updated information that I should pull. Super wasteful and inefficient. I really wanted to migrate
inefficient. I really wanted to migrate from this polling every single minute to Notion's new web hook system. So, I fed in the notion docs into cloud code and told it, hey, can you do this migration?
And after 30 minutes, we had the full migration completely done. It took Cloud Code like 5 minutes and two prompts to do it. And then the other 25 minutes was
do it. And then the other 25 minutes was just me checking to make sure that everything was functioning correctly.
Since that was so quick, I also added a couple more things like the ability to map Ellie labels to notion labels. And I
fixed a bunch of edge cases that I missed the first time that Claude Code was able to catch this time. And because
of all these improvements and how stable it feels, I was able to remove the beta label that we had for basically the last year. All of this happened so quickly
year. All of this happened so quickly and so easily. I was curious how easy is it for me to just build an integration from scratch using cloud code. So I
decided to build a to-doist integration from scratch. So you can import task
from scratch. So you can import task from to-d doist into Ellie and a two-way sync so that the tasks are constantly in sync. Thankfully the documentation is
sync. Thankfully the documentation is even better than notions. This would
have taken me weeks before AI because that's how long it took me to ship the original notion integration. But with
cloud code I was able to ship this in a literal afternoon and it's live. You can
actually check it out now. That was
actually all the major stuff that I had planned on getting done this week.
Calendar layout engine, drag and drop, maybe some integration upgrades. All of
this was done in about 3 days. So, I
figured I might as well make some upgrades to the Ellie iOS app because I have so much time and it has been a while since the app has been updated.
One thing I wanted to upgrade was this calendar top area. This is basically how you change what date is visible on the app. You can just swipe and click on
app. You can just swipe and click on dates. A very simple calendar picker. I
dates. A very simple calendar picker. I
built this super quickly without AI and I didn't really put too much thought on the design. So, I decided to try to
the design. So, I decided to try to redesign it a little bit. So, I went on Mobin and I studied a bunch of apps to see how they do week navigation and I settled on this design in the end. And
this is something I'm frequently doing, going throughout the app and trying to figure out could I redesign this component to be even better. The tool
I'm using frequently for this is Mobin.
And a huge shout out to them for actually sponsoring this video. If
you've been following along, you know I've been using and recommending Mobin way before they started sponsoring the channel. And even if they weren't, I
channel. And even if they weren't, I will continue to be using and recommending them anyway. But they are by far my favorite design tool. It's
basically this massive library of screenshots. So you can see how other
screenshots. So you can see how other apps are implementing different UI components, different page patterns, tens of thousands of different screens all available on this platform. So
anytime I'm stuck with a UI problem, like trying to figure out how to do the weak navigation, I go on Mobin to get inspiration and that's usually how I get unstuck with these problems. I'll leave a link in the description and there's actually a discount for 20% off. They
did not have to do that. I'm the one that asked for the discount. So a huge thank you to them for providing that. So
that weak navigation redesign was one of the small things I shipped. There were a couple of other minor improvements like the ability to specify what is the default open page of the app. So right
now when you open Ellie, it goes to this page where you can see today, you can see all your lists. But something people have requested is the ability to have the app open directly on today view or directly on the time box. So now you can
actually change this in settings where you can specify which page you want it to automatically open to. And again,
this took like 10 minutes to ship with cloud code. I also made some
cloud code. I also made some improvements to the LA AI assistant. So,
it's much faster, it's cheaper, it's way more reliable. To be honest, I could
more reliable. To be honest, I could probably talk about this for 10 minutes straight. So, if you want to see another
straight. So, if you want to see another video on that, leave a comment below.
That one took about an hour to build.
And then the next thing I had Cloud Code work on, which is a little bit nerdy. I
had Claude Code build me a whole logging system using Cloudatch. Cloudatch is
this thing by AWS to do logging. And I
had tried to set this up in the past before, but it was just super annoying to do, so I gave up. I was curious if Cloud Code could do it. So, I gave it access to the AWS CLI in my codebase, and it spun up this great dashboard for
me. So now I can better visualize errors
me. So now I can better visualize errors and see where is my backend failing.
Super easy for cloud code. That one took about 10 minutes to set up. The last
thing I worked on for Ellie was improvements to the Slack integration.
Right now you can take any Slack message and convert it into an Ellie task. This
is really great if you want a reminder to respond to something or just make an action item out of a message. I made a couple small improvements, but the one I'm really excited about is I added AI enrichment. So now when you try to
enrichment. So now when you try to create a task, it's automatically going to fill out the description and populate a label depending on what the message is. And the reason I didn't add this
is. And the reason I didn't add this before was the AI models were just not good or cheap enough to do this reliably. But with Gemini Flash and some
reliably. But with Gemini Flash and some of the other models, it's way more affordable and reliable to do this. Now,
I shipped this as an optional feature.
All of the stuff took about 30 minutes, and I was really happy with how this turned out. I was very happy with the
turned out. I was very happy with the progress on Ellie. We made a ton of great improvements this week. So I
wrapped the week by doing a couple more improvements to Luna and Amy. For Luna,
I upgraded the app to support iOS 26 and specifically, I added liquid glass throughout the app. And the biggest improvement was shipping a liquid glass tab bar to support Apple's new iOS 26. I
was on the fence about this one because to effectively add this, I had to kill the animation where when you switch tabs in Luna, the page actually swipes between the pages instead of just
instantly animating like most of the Apple apps. Adding the liquid tab bar
Apple apps. Adding the liquid tab bar completely kills this animation. So,
after building it, I decided to sit with it on my device for a few days. And in
the end, I did actually end up shipping it. That was the final thing I shipped
it. That was the final thing I shipped for Luna. For Amy, I decided to apply
for Luna. For Amy, I decided to apply the UI kit drag and drop lesson we learned with Ellie to Amy because there's a lot of complex drag gestures going on as well. The Amy homepage looks really simple. It kind of just looks
really simple. It kind of just looks like Apple Notes. But under the hood, there's actually two scroll bars that we have and they're constantly in sync. You
can swipe between the pages. You can tap between these calories in this dead space right here and it will activate the cursor there. So, there's a ton of gestures going on and because of that, this page has been pretty buggy for users. So I threw cloud code at it and
users. So I threw cloud code at it and said, "Can you rewrite this using UI kit instead of Swift UI?" And again, it solved like 99% of the problems. Even this weird problem where users could not
select more than one text at a time. I
think it was just conflicting with the page swipe gesture completely fixed.
Now, this is what I love about working with multiple apps. Something I
discovered working on the Luna charts got applied to the Ellie drag and drop, which got applied to Amy's drag and drop. Every time I learn something, all
drop. Every time I learn something, all of my apps benefit. And for the last day, I decided to work on Amy goals. To
be honest, I'll probably save this for another video as well, but I did work on a revamped goal system. Amy's pretty
good at logging calories, but again, people don't log calories just for the sake of logging calories. They do it to try to hit some goal. So, I revamped the system. So, instead of just asking what
system. So, instead of just asking what macros they want to hit, we now ask even more questions during onboarding to try to calculate this. I added this new chart for visualization. And obviously,
I use UI Kit for the drag and drop gestures. So, I spent a couple hours on
gestures. So, I spent a couple hours on this, and the experience is now way better. Finally, I spent about an hour
better. Finally, I spent about an hour trying to mess with a 3-day view in Ellie, cuz right now you can view one day at a time in the time box. I wanted
to experiment with a way to see three days at the same time, but it didn't really work out. It was so buggy and laggy, and there were a lot of different gestures that were missing that I realized, okay, this is going to take me probably a whole week to do correctly.
So, I ended up putting a pause on that experiment, and that was the week for me. I think the main thing I wanted to
me. I think the main thing I wanted to show you guys was that there is a way to juggle multiple apps. You just have to be very intentional about it. On the
surface, it looks like I am very unfocused, but this is just the most optimal way that I can work in the long run. I would get so burnt out if I was
run. I would get so burnt out if I was just working on one app. I hope you guys enjoyed this behind the scenes. If you
like this kind of content, check out my Instagram and Tik Tok. I post almost every other day about building productivity apps. Obviously, if you
productivity apps. Obviously, if you like this content, don't forget to subscribe. But thank you guys so much
subscribe. But thank you guys so much for watching and I will see you guys in the next video.
Loading video analysis...