WEBVTT

00:00:00.000 --> 00:00:07.519
Hello, everyone. This is Ilya, a co-founder of Metacast. And I'm Arnab, the other co-founder of Metacast.

00:00:07.984 --> 00:00:22.047
Yeah, so we decided to do a new type of episodes as an experiment. So every week, Arnab and I meet for our weekly sync up or stand up, if you like. Right after that, we'll record this short update.

00:00:22.512 --> 00:00:32.222
and give you a glimpse into what it actually takes to build a mobile app in this day and age. So we will provide brief updates on what we have done in the last...

00:00:32.560 --> 00:00:43.456
week or since the last update, because occasionally it will be a bi-weekly update, I guess, if we skip a week. It happens sometimes. And we will also give you an idea of what we are working on next.

00:00:44.207 --> 00:00:56.415
Keep in mind, these are not hard commitments. We both also have our lives outside of work. But yeah, so we are very nervous about committing to anything publicly. But we will do our best.

00:00:56.624 --> 00:01:05.823
to set proper expectations. And it's two people building a mobile app, web app, and a backend infrastructure. So things can always change.

00:01:05.936 --> 00:01:15.552
But this is what these kind of episodes are for. Okay. And we'll try to keep it to less than 10 minutes. Right, Ilya? Yeah, usually. All right. My timer is started.

00:01:15.920 --> 00:01:25.920
Let's go. Great. We are doing this to provide more transparency to our users. We mostly expect our regular users to listen to this, not just random people.

00:01:26.319 --> 00:01:36.224
So we will be talking about the app a lot. We are also thinking about creating a public roadmap so we can publish what we committed to, what we're working on right now, what we've shaped.

00:01:36.719 --> 00:01:40.191
because we are getting quite a few requests from users on Reddit.

00:01:40.560 --> 00:01:48.768
Sometimes they're the same requests coming up in different threads. Sometimes we get them by email. It would be nice to actually have a view that we can...

00:01:49.103 --> 00:02:01.024
present to people, let them upvote features, comment on the same threads, so it also reduces the overhead for us, but also provides more transparency. Hopefully, by the time we do the next update, we will figure it out.

00:02:01.359 --> 00:02:05.536
I think right now we're looking at Trello as a tool, but we need to first test it.

00:02:06.224 --> 00:02:19.520
Yeah, we tried out GitHub. It doesn't meet all of our things. So yeah, we'll try it out. All right. So Arnab, what have you been working on? Last week, we launched the 1.18 version.

00:02:22.063 --> 00:02:25.343
My Mac was like slowing down to a crawl.

00:02:25.584 --> 00:02:37.407
It's a 2021 M1 Pro. And with the emulator and all that, like for MobileDev, it was really struggling. So I decided to upgrade it. I got an M4 Pro.

00:02:37.616 --> 00:02:51.872
moved everything over maybe i should talk about it i got a few like changed some terminal apps and launcher apps and all that to newer ones uh there i love it actually maybe we should talk about it sometime but that that was

00:02:52.271 --> 00:03:10.111
I want to say maybe a day, a couple, day and a half, something like that to set everything up again. And then every few releases, when we do an app release, I want to say about every month or so, we take the time to upgrade all our dependencies like Flutter, Dart.

00:03:10.479 --> 00:03:19.328
Firebase, all of the other critical pieces that we use in the app so that they're secure and up-to-date with available version.

00:03:19.824 --> 00:03:33.632
So that's out in the beta version right now under V1.19. There are some significant changes that we've made. So you and I and our few beta users, they were going to test it thoroughly.

00:03:34.000 --> 00:03:46.175
And I think we learned that the couple of links, like the open OPML import or the FAQ, when you tap on it on an Android phone, it's broken right now.

00:03:46.448 --> 00:03:57.728
Yeah, we've got a few users reaching out to us saying that that is broken. And also just to give, I guess, an idea to people who are not familiar with mobile app development, we can't just...

00:03:58.352 --> 00:04:08.991
fix it immediately. We actually have to make the code change, submit it to Apple and Google. They have to approve it, then it gets released. It does take a few days.

00:04:09.711 --> 00:04:20.862
Yeah, at least a few days. And on top of it, in this case, it's actually working in the emulator and only broken on some Android phones. So we'll have to figure out what the heck is actually going on.

00:04:21.391 --> 00:04:28.255
But yeah, it's supposed to be a simple thing. It's like opening up the web view in it. So yeah, that should be ready.

00:04:30.896 --> 00:04:39.968
I guess just to give people who are listening to this for the first time, Arnab is mostly working on the mobile app. I mostly work on the web app and both of us contribute to the backend.

00:04:40.303 --> 00:04:54.783
So on the web app side, we've been experiencing an invasion of automated bots that crawl our website. Just actually this morning, I was looking at the last 24 hours and we had almost a million requests.

00:04:55.312 --> 00:04:57.536
sent to our web application.

00:04:58.064 --> 00:05:07.680
It's a lot. And those are mostly automated bots like the Anthropic, the Cloud bot. They sent us 400,000 requests in 24 hours.

00:05:07.920 --> 00:05:19.680
collecting data for training their LLMs. It's crazy. Well, the thing is, we had previously incurred some costs from this. And even last month, actually, we spent, I think, three times more than we wanted.

00:05:19.920 --> 00:05:31.711
on our web app infrastructure. First of all, we don't want to block all of those bots. We talked about that on the last episode because there may be some benefits in terms of our site surfacing in ChatGPT and other chatbots.

00:05:32.112 --> 00:05:42.048
But we need to also protect our costs. So we are implementing Cloudflare, which is this content delivery network, CDN, in front of our web app to cache it.

00:05:42.480 --> 00:05:45.312
so that we don't pay so much.

00:05:45.744 --> 00:05:51.327
The thing with caching is that when content changes, you actually want to make sure that the cache is invalidated.

00:05:51.632 --> 00:06:02.208
and served fresh. So we have to write some logic to manage that. Because most of our pages or some of our pages are static, like the pricing page and the homepage and all that.

00:06:02.351 --> 00:06:08.959
But we do have dynamic pages for all the podcasts and episodes, and that's like 2 million plus pages already.

00:06:09.487 --> 00:06:18.720
And we can't like hand manage all that. So we are writing logic in the backend to like invalidate the cache whenever it's required. Yeah.

00:06:19.055 --> 00:06:25.408
Yeah, I wish we could just be building features instead of that, but, well, what user are the features if we are broke because of infrastructure?

00:06:25.680 --> 00:06:34.591
And talking about 400,000 requests per day, that is insane. Because at first, remember when this all started a month back?

00:06:34.735 --> 00:06:42.911
I think that time we were taking in about 30,000 requests a day and we were already paying a heavy amount where that's when we started optimizing everything.

00:06:43.151 --> 00:06:51.584
Now we are up to like 400,000. But I do feel like at some point we'll probably get some benefits out of it, like that perplexity.

00:06:51.824 --> 00:07:06.079
A new user told us today that they found us through perplexity and we searched in perplexity. I don't know why it's so hard for me to say perplexity. It's a perplexity about why I can't say the word perplexity.

00:07:06.512 --> 00:07:16.927
There you go. But anyway, they told us that they found us through it. We searched and yeah, it does recommend Metacast pretty heavily. So that's pretty cool.

00:07:17.327 --> 00:07:29.120
Yeah, so the other thing we worked on in the web app is being able to open any podcast in the app. If you have an episode or podcast page open in your phone and you just tap and it opens the app for you.

00:07:29.519 --> 00:07:39.040
We don't have that right now. And we've built all the plumbing to enable this in the next version. So in version 1.19, we hopefully have that.

00:07:40.495 --> 00:07:47.584
But we had to do some work ahead of time last week. All right. So let's move on to next week because we have three minutes left only.

00:07:47.824 --> 00:08:00.384
For the mobile app, yeah, the same stuff like links. I think we'll have some awesome links sharing as well as opening. Those features will be really nice from the web app to the mobile app as well as deep links.

00:08:00.848 --> 00:08:04.064
We're going to start adding summaries into the mobile app.

00:08:04.336 --> 00:08:15.487
And Ilya, you're going to start working on ingesting creator-provided transcripts into the backend so that it shows up both in the mobile app like it shows up in the web app already.

00:08:15.663 --> 00:08:25.504
Yeah, and I think that will be really exciting when we have those transcripts in the mobile app because they also have speaker names. It is for some of them. It's going to be great.

00:08:25.935 --> 00:08:31.872
And then you're also finish up the caching work that you're doing. Yeah, I'll finish the caching work.

00:08:32.272 --> 00:08:39.840
I'm also thinking about creating a bunch of pages about Metacast features with screenshots and descriptions because, again, people ask the same questions.

00:08:40.144 --> 00:08:51.488
we need to be able to just send them a link, right? Instead of responding to the emails and Reddit posts manually. Also, it will hopefully give us some more discoverability on Google and chatbots.

00:08:51.759 --> 00:09:04.831
And as silly as it sounds, we are also doing a minor rebrand. The designer friend of ours offered us some help with the design. He created some really great visuals, and one of those visuals is a new logo.

00:09:05.231 --> 00:09:10.048
So we are just going to swap the logo files both in the app and in the web app.

00:09:10.447 --> 00:09:20.831
And now we've been sort of chastised for like not having the right priorities on Reddit. This is one of those things I'm like, shouldn't even talk about this. But it is actually a fairly minor piece of work.

00:09:21.264 --> 00:09:32.703
And I think it will make the app look a lot better. Okay, so we have one minute left to go. And that means two 30-second segments of what you're listening to right now, Ilya. Let's go start. I'll start a timer.

00:09:33.296 --> 00:09:39.392
So these are podcast recommendations, right? So my favorite episode of last week was the Buzzcast.

00:09:39.823 --> 00:09:49.631
episode by Buzzsprout, where they ranted about initiatification of all of the content that just becomes short form clickbait videos all over the place in all platforms.

00:09:50.192 --> 00:10:01.759
Except for audio podcasts that remain hands-free, eyes-free, so you can actually enjoy the slow-moving... Oh, man, he showed me the timer, and I lost my train of thought.

00:10:02.159 --> 00:10:13.567
All right, that's it. Anyway, the link is in the show notes. Okay, so my update. I'll start the timer again. HBO's Last of Us.

00:10:15.504 --> 00:10:23.456
The second season, second episode came out on Sunday and it was, I won't give you spoilers, but it was insane.

00:10:23.631 --> 00:10:35.360
Dude, we're supposed to recommend podcasts, not HBO series. So I love that show so much that I listened to the HBO's like official Last of Us podcast and I listened to that episode.

00:10:35.759 --> 00:10:40.063
Hey, I did it in 25 seconds, Ilya. I don't know why it took you more than 30 seconds.

00:10:40.624 --> 00:10:46.912
I guess it's because you had the visual cue with the metronome in front of you, right? So I think that's a wrap.

00:10:47.168 --> 00:11:00.960
Yeah, that was fun. So let's see how long this 10-minute update will be. I think it will be about 30 minutes. No, I think it was 12 minutes recording, so it will be less than... Okay, less than 12 minutes for sure. Okay, bye. Ciao.

