48: FoodNoms - Ryan Ashcraft
Transcript
Autogenerated by MacWhisper
00:00:00.000 --> 00:00:06.840
Welcome to Launched. I'm Charlie Chapman, and today I'm excited to bring you the developer
00:00:06.840 --> 00:00:17.120
behind the food tracking app Food Knobs, Ryan Ashcraft.
00:00:17.120 --> 00:00:29.760
Ryan, welcome to the show. Thanks, Charlie. Nice to be here.
00:00:29.760 --> 00:00:36.560
gone long enough, both into the pandemic and into this like indie career thing, I guess
00:00:36.560 --> 00:00:42.400
now that I'm having people on that I've gotten to actually meet in person. So we met at WWDC
00:00:42.400 --> 00:00:46.600
this year. And so it's, I don't know, it's a different, it's a different vibe. I feel
00:00:46.600 --> 00:00:50.380
like we kind of know each other a little bit. I mean, it was just, you know, hanging out.
00:00:50.380 --> 00:00:55.160
But considering what we've had up until this point, it feels kind of cool. And you've been
00:00:55.160 --> 00:00:59.000
in this world about the same amount of time that I've been, right? In terms of the indie
00:00:59.000 --> 00:01:00.760
the iOS dev world?
00:01:00.760 --> 00:01:01.740
- Yeah, I guess.
00:01:01.740 --> 00:01:03.640
I was actually trying to look back
00:01:03.640 --> 00:01:05.760
and come up with some dates to reference.
00:01:05.760 --> 00:01:09.800
And yeah, it's already been, what, almost three years.
00:01:09.800 --> 00:01:11.280
It's kind of crazy.
00:01:11.280 --> 00:01:14.440
And we've followed each other on Twitter
00:01:14.440 --> 00:01:16.000
for most of that time.
00:01:16.000 --> 00:01:18.920
And yeah, it's kind of crazy how long it's been.
00:01:18.920 --> 00:01:20.360
It doesn't feel like it's been that long.
00:01:20.360 --> 00:01:23.500
And then, yeah, it was really cool meeting you
00:01:23.500 --> 00:01:24.740
and meeting a bunch of other people,
00:01:24.740 --> 00:01:29.740
like Jordan, Vidit, and everyone else at DubDub.
00:01:29.740 --> 00:01:31.320
That was super fun.
00:01:31.320 --> 00:01:32.640
- It was a very weird feeling,
00:01:32.640 --> 00:01:34.040
'cause yeah, you associate all these people
00:01:34.040 --> 00:01:36.960
with a profile picture, and all of a sudden,
00:01:36.960 --> 00:01:38.800
they're real, and they have voices.
00:01:38.800 --> 00:01:39.920
(laughing)
00:01:39.920 --> 00:01:41.400
- Yeah, yeah, exactly.
00:01:41.400 --> 00:01:42.960
- Yeah, that was cool.
00:01:42.960 --> 00:01:46.040
Personally, Food Noms is an interesting one,
00:01:46.040 --> 00:01:48.720
because our timing was so well-aligned.
00:01:48.720 --> 00:01:50.900
Like, we started this around the same time,
00:01:50.900 --> 00:01:54.080
so I had a similar thing, where I was preparing for the show
00:01:54.080 --> 00:01:56.400
and going through your back catalog.
00:01:56.400 --> 00:01:58.640
And I'm like, when did he, or like your blog posts.
00:01:58.640 --> 00:02:00.000
And I was like, when did this actually come out?
00:02:00.000 --> 00:02:02.000
I was like, oh right, that was right around the time
00:02:02.000 --> 00:02:02.840
Dark Noise came out.
00:02:02.840 --> 00:02:04.120
And then I was like, wait a minute, that can't,
00:02:04.120 --> 00:02:05.960
it couldn't be three years ago.
00:02:05.960 --> 00:02:07.760
Like I'm new here, we're new here.
00:02:07.760 --> 00:02:10.520
We're not supposed to be three years old at this point.
00:02:10.520 --> 00:02:14.200
- Yeah, I think we were talking about it at DubDub,
00:02:14.200 --> 00:02:17.360
how there was this sort of wave, it felt like,
00:02:17.360 --> 00:02:20.680
this like generation of apps that came out around that time.
00:02:20.680 --> 00:02:24.080
And I think a lot of it was just coincidence.
00:02:24.080 --> 00:02:25.800
But it was like, it was really,
00:02:25.800 --> 00:02:29.960
it felt like a true like renaissance in a way.
00:02:29.960 --> 00:02:32.320
And it was kind of fun.
00:02:32.320 --> 00:02:33.640
You know, there was Jordan Morgan
00:02:33.640 --> 00:02:35.720
with SpinStack, of course.
00:02:35.720 --> 00:02:38.880
There was you with Dark Noise, a variety of others.
00:02:38.880 --> 00:02:42.040
Some of them, I think, have been on the show previously
00:02:42.040 --> 00:02:45.680
that their first app came around that time,
00:02:45.680 --> 00:02:47.760
or the first version.
00:02:47.760 --> 00:02:51.240
I did iOS development like kind of in the old days,
00:02:51.240 --> 00:02:52.900
like when I was in high school.
00:02:52.900 --> 00:02:56.880
So I was a part of that original sort of romanticism
00:02:56.880 --> 00:03:01.880
of app development and you'd hear all these crazy stories.
00:03:01.880 --> 00:03:06.280
And it felt like, I think in 2019,
00:03:06.280 --> 00:03:09.600
when our generation, as I call it,
00:03:09.600 --> 00:03:13.760
when we were kind of getting back into the scene,
00:03:13.760 --> 00:03:15.200
or when I was getting back into the scene,
00:03:15.200 --> 00:03:17.000
it felt kind of similar.
00:03:17.000 --> 00:03:19.160
there was like this renewed hope.
00:03:19.160 --> 00:03:20.500
I think with like, you know,
00:03:20.500 --> 00:03:22.700
you had things like subscriptions,
00:03:22.700 --> 00:03:26.040
you had, I think Swift UI for me was a huge component of it
00:03:26.040 --> 00:03:28.140
and like all the new technology that was coming out
00:03:28.140 --> 00:03:30.740
just seemed like it was making a lot of things
00:03:30.740 --> 00:03:32.340
a lot simpler.
00:03:32.340 --> 00:03:35.300
It was a really energizing and fun time
00:03:35.300 --> 00:03:36.920
to be an indie app dev.
00:03:36.920 --> 00:03:40.000
- Before we get into like food knobs and get into that,
00:03:40.000 --> 00:03:41.620
let's talk about that lead up then.
00:03:41.620 --> 00:03:42.900
So where are you from?
00:03:42.900 --> 00:03:44.220
Do you have a formal education
00:03:44.220 --> 00:03:45.740
related to what you're doing?
00:03:45.740 --> 00:03:48.480
and then we can talk about your career
00:03:48.480 --> 00:03:49.620
leading up to FoodNomz.
00:03:49.620 --> 00:03:52.180
And I'm interested in that early era
00:03:52.180 --> 00:03:53.840
iPhone development time too.
00:03:53.840 --> 00:03:57.300
- Yeah, so I'm from, I grew up in the South
00:03:57.300 --> 00:03:59.620
and in Virginia, North Carolina.
00:03:59.620 --> 00:04:03.380
I went to school, university, Georgia Tech
00:04:03.380 --> 00:04:04.860
in Atlanta, Georgia.
00:04:04.860 --> 00:04:07.820
So yeah, that kind of answers the second question there,
00:04:07.820 --> 00:04:08.780
my formal education.
00:04:08.780 --> 00:04:10.820
So I did get a computer science degree.
00:04:10.820 --> 00:04:13.300
Yeah, I graduated in 2013.
00:04:13.300 --> 00:04:18.220
I think that was where I met my husband.
00:04:18.220 --> 00:04:21.660
I learned so much and I really value that time.
00:04:21.660 --> 00:04:23.720
I think great experience for sure.
00:04:23.720 --> 00:04:26.780
And that kind of launched me into my career
00:04:26.780 --> 00:04:29.940
where I interned at Apple for one summer.
00:04:29.940 --> 00:04:32.300
Then after that, kind of got pigeonholed,
00:04:32.300 --> 00:04:34.420
I think into this like web dev.
00:04:34.420 --> 00:04:35.860
I think Apple is kind of interesting
00:04:35.860 --> 00:04:38.220
how Apple, I think, noticed my resume
00:04:38.220 --> 00:04:40.540
'cause of like my iOS development stuff
00:04:40.540 --> 00:04:42.780
that I had been doing at the time.
00:04:42.780 --> 00:04:46.180
- So you were playing around with that in college then?
00:04:46.180 --> 00:04:47.420
- I started in high school.
00:04:47.420 --> 00:04:48.260
- Oh, okay.
00:04:48.260 --> 00:04:50.660
- And then I kinda kept it going
00:04:50.660 --> 00:04:53.300
and some stuff on the side through college.
00:04:53.300 --> 00:04:55.380
- And that's probably how you got
00:04:55.380 --> 00:04:57.660
into that internship, you think?
00:04:57.660 --> 00:05:00.060
- That was definitely, yeah, I think that jumped out
00:05:00.060 --> 00:05:01.060
on the resume.
00:05:01.060 --> 00:05:06.100
You go to career fairs and you have iOS projects
00:05:06.100 --> 00:05:07.500
and you go to the Apple table
00:05:07.500 --> 00:05:11.300
and that's gonna definitely make them notice you.
00:05:11.300 --> 00:05:14.620
Yeah, definitely got me noticed.
00:05:14.620 --> 00:05:18.180
It's interesting, they put me on a web dev team,
00:05:18.180 --> 00:05:20.980
or a project that was more web dev,
00:05:20.980 --> 00:05:24.900
which I also had a lot of experience in since I had been doing web dev,
00:05:24.900 --> 00:05:26.980
basically since I was 12 years old,
00:05:26.980 --> 00:05:30.300
web design, some sort.
00:05:30.300 --> 00:05:33.140
That was super fun,
00:05:33.140 --> 00:05:37.420
but I think it shifted my career more in that web direction.
00:05:37.420 --> 00:05:40.940
So I think since then I've always been kind of straddling
00:05:40.940 --> 00:05:44.900
these two, it feels like two different worlds of web dev
00:05:44.900 --> 00:05:47.220
and that's kind of been the main focus
00:05:47.220 --> 00:05:50.340
of my professional career, where I get paid
00:05:50.340 --> 00:05:53.900
and my full-time gigs and then I've always maintained
00:05:53.900 --> 00:05:56.140
this interest in Apple.
00:05:56.140 --> 00:05:59.000
- Interesting, but you never crossed the threshold
00:05:59.000 --> 00:06:01.160
into React Native then?
00:06:01.160 --> 00:06:03.500
- I remember when React Native came out.
00:06:03.500 --> 00:06:08.500
So I'm actually like a huge React fanboy, practically.
00:06:08.500 --> 00:06:09.940
(laughing)
00:06:09.940 --> 00:06:11.900
- I was there for the early React days.
00:06:11.900 --> 00:06:13.500
I haven't done it in a while, but yeah.
00:06:13.500 --> 00:06:18.500
- I remember the, I forget the name,
00:06:18.500 --> 00:06:20.980
one of the leads on the React team came.
00:06:20.980 --> 00:06:22.300
So I was working at Yahoo.
00:06:22.300 --> 00:06:24.220
- Abramoff, Dan Abramoff, probably?
00:06:24.220 --> 00:06:25.060
- It wasn't Dan.
00:06:25.060 --> 00:06:26.860
I did meet Dan later.
00:06:26.860 --> 00:06:27.700
- Oh, that's cool.
00:06:27.700 --> 00:06:31.400
- Yeah, I met him later, but it was super early days.
00:06:31.400 --> 00:06:32.420
I was at Yahoo.
00:06:32.420 --> 00:06:34.900
So that was my first job out of college.
00:06:34.900 --> 00:06:37.700
We were using YUI, which was a nightmare.
00:06:37.700 --> 00:06:38.980
It was horrible.
00:06:38.980 --> 00:06:43.500
And we had one of the team members of React
00:06:43.500 --> 00:06:46.060
come and give a talk about React.
00:06:46.060 --> 00:06:52.220
And we all on the team saw this, and we were so excited,
00:06:52.220 --> 00:06:54.700
and we were like, we have to ship this.
00:06:54.700 --> 00:06:57.700
Pretty sure we were actually the first team at Yahoo
00:06:57.700 --> 00:07:00.100
to ship React to production.
00:07:00.100 --> 00:07:01.180
Oh, wow.
00:07:01.180 --> 00:07:04.140
first or second, and we kind of did it without permission.
00:07:04.140 --> 00:07:14.140
And it was it was crazy. And, and, yeah, I was like, that's, you know, I got so into kind of
00:07:14.140 --> 00:07:18.460
this declarative programming, functional programming, kind of going down the rabbit hole there.
00:07:18.460 --> 00:07:21.580
Yeah, I'm already seeing the I'm already seeing the pieces here to say,
00:07:21.580 --> 00:07:22.860
do I being exciting?
00:07:22.860 --> 00:07:27.020
Yeah. Yeah. Exactly.
00:07:27.020 --> 00:07:35.580
That's funny because yeah that so I started I had never downloaded Xcode before 2019 when I like
00:07:35.580 --> 00:07:41.660
made it over into an iOS team which luckily had me and taught me how to do everything but so my
00:07:41.660 --> 00:07:51.260
first WWDC as a iOS developer was 2019 and on my even then because I've always been a dork even
00:07:51.260 --> 00:07:56.140
when I was an Android user I was a dork that watched all of the Apple keynotes and had wish
00:07:56.140 --> 00:08:01.060
lists and all that. And one of my wish list things was a declarative UI framework, because
00:08:01.060 --> 00:08:07.500
I thought at that time coming from React, I'm like, this feels crazy. Like, it feels
00:08:07.500 --> 00:08:13.040
like I'm writing like win forms like I did in college. Like, I can't believe I'm explicitly
00:08:13.040 --> 00:08:17.700
doing all of this. And between and then so that was when they announced Swift UI. And
00:08:17.700 --> 00:08:21.280
I was like, Oh my gosh, they did it. Like they did exactly the thing that I was wanting.
00:08:21.280 --> 00:08:27.120
between it coming out and or it being announced at WWDC and then it being a point where I
00:08:27.120 --> 00:08:31.700
could actually start using it. Somehow in that short of amount of time, I became a crusty
00:08:31.700 --> 00:08:37.420
old UI developer who was like, "Oh, this thing is so painful and I love being able to have
00:08:37.420 --> 00:08:42.280
explicit frame-based controls over everything." And it was like, man, that didn't take long
00:08:42.280 --> 00:08:44.780
for me to become the old CrimRegin.
00:08:44.780 --> 00:08:49.820
It's funny that I've kind of gone down a similar path, kind of like talking about React more
00:08:49.820 --> 00:08:55.500
and like why I was such a fan is like, you know, I used Yahoo and then at my next job
00:08:55.500 --> 00:09:02.700
at - I worked at Amplitude which is, you know, I joined super early and was there for four
00:09:02.700 --> 00:09:10.980
years and I think it's super fulfilling, wonderful experience to be a part of like a startup
00:09:10.980 --> 00:09:15.540
that like is - it's like a rocket ship.
00:09:15.540 --> 00:09:22.800
And I attribute a lot of, I feel like my success to React and like bringing that technology
00:09:22.800 --> 00:09:28.980
in and like making that like the foundation for their front end.
00:09:28.980 --> 00:09:35.040
I was like living and breathing React and I would always kind of look back and look
00:09:35.040 --> 00:09:38.680
down I think on like all the imperative UI code.
00:09:38.680 --> 00:09:40.440
It's like you all need to see the light.
00:09:40.440 --> 00:09:41.440
Yeah.
00:09:41.440 --> 00:09:42.440
Yeah.
00:09:42.440 --> 00:09:43.440
I heard about these rumors.
00:09:43.440 --> 00:09:47.360
Yeah, I remember there were rumors about like a declarative programming.
00:09:47.360 --> 00:09:49.400
It was like Amber or something.
00:09:49.400 --> 00:09:50.400
Yeah, yeah.
00:09:50.400 --> 00:09:53.960
And that was like starting to really pique my interest.
00:09:53.960 --> 00:09:58.920
You know, I tried React Native, which you mentioned, and I was not satisfied with like,
00:09:58.920 --> 00:10:02.400
it's like they didn't even have table views.
00:10:02.400 --> 00:10:05.880
And it was like super broken experience for me.
00:10:05.880 --> 00:10:12.960
So yeah, I think it's just like a lot of it was a timing thing that after I was talking
00:10:12.960 --> 00:10:16.600
I was talking about I was at Amplitude for four years.
00:10:16.600 --> 00:10:18.460
Towards the end of that time,
00:10:18.460 --> 00:10:20.680
actually like burning out pretty hard.
00:10:20.680 --> 00:10:22.240
I was, it was like really rough.
00:10:22.240 --> 00:10:24.840
I think going again and like being a part
00:10:24.840 --> 00:10:28.080
of that startup rocket ship is great and you learn a ton,
00:10:28.080 --> 00:10:30.520
but it's so easy to burn yourself out.
00:10:30.520 --> 00:10:31.480
And I definitely--
00:10:31.480 --> 00:10:33.880
- You burn fuel quickly in a rocket.
00:10:33.880 --> 00:10:35.800
- Yeah, exactly.
00:10:35.800 --> 00:10:40.560
And so, you know, I was kind of,
00:10:40.560 --> 00:10:44.500
I think I also had this sort of like creative energy
00:10:44.500 --> 00:10:47.240
that was being pent up and built up inside me
00:10:47.240 --> 00:10:50.700
that I think the tough thing about also being a part
00:10:50.700 --> 00:10:54.480
of this startup and any startup like this,
00:10:54.480 --> 00:10:55.440
it's inevitable.
00:10:55.440 --> 00:10:59.360
You join super early and you have so much input
00:10:59.360 --> 00:11:01.280
and like control, right?
00:11:01.280 --> 00:11:02.880
You're a team of 20.
00:11:02.880 --> 00:11:06.000
You can decide what the product looks like.
00:11:06.000 --> 00:11:07.600
Like there's even, you know,
00:11:07.600 --> 00:11:09.560
there might not even be a designer on the team.
00:11:09.560 --> 00:11:16.400
you might be effectively the designer or the PM, right? And then slowly over time, your
00:11:16.400 --> 00:11:22.960
responsibility kind of gets distilled down to just kind of your role as like an engineer.
00:11:22.960 --> 00:11:30.520
And I did not do well with that transition and I don't think I was prepared for it mentally.
00:11:30.520 --> 00:11:35.560
And then it just created this like, you know, pent up creative energy. I was like so ready
00:11:35.560 --> 00:11:40.440
to like do my own thing. And then I remember watching, you know, that was right at four
00:11:40.440 --> 00:11:44.520
years. I was watching the dub dub keynote. They were talking about SwiftUI. They were talking
00:11:44.520 --> 00:11:49.560
about even like SF symbols. I saw all these pieces. I'm like, oh my God, this is going to make
00:11:49.560 --> 00:11:54.360
building an app so much easier. I think also like CloudKit, core data syncing was another
00:11:54.360 --> 00:12:00.200
component there. I remember texting some friends when they announced SwiftUI. I was like, I was
00:12:00.200 --> 00:12:05.240
like all caps and like freaking out. It's like the best announcement ever. And I probably said that
00:12:05.240 --> 00:12:10.680
to and I don't think anyone else like reacted to it. I don't think they quite got it but
00:12:10.680 --> 00:12:17.560
I was excited and I was like, "All right, this is it. I need to make the jump and I want to get,
00:12:17.560 --> 00:12:23.960
you know, why not?" I was honestly like so burnt out. I didn't feel like it was a good idea for me
00:12:23.960 --> 00:12:29.160
to like go get like another full-time job immediately and I felt pretty comfortable I
00:12:29.160 --> 00:12:35.560
I could get one. So the game plan was, let's try something out. I will give myself like
00:12:35.560 --> 00:12:40.360
six months. I want to build something of my own that's substantial and show it to the
00:12:40.360 --> 00:12:47.800
world and then we'll kind of take it from there. And kind of what led up to that point
00:12:47.800 --> 00:12:49.920
before I had come up with the actual idea.
00:12:49.920 --> 00:12:56.040
Yeah. So I'm curious about that. So it's always interesting. There's different catalysts for
00:12:56.040 --> 00:13:00.200
and yours started with, I wanna build something.
00:13:00.200 --> 00:13:04.000
And then you had to then come up with a thing to build.
00:13:04.000 --> 00:13:07.020
So how did you, I hate using the word,
00:13:07.020 --> 00:13:10.180
but how did you ideate on what you wanted to build
00:13:10.180 --> 00:13:12.040
and was it sort of business minded
00:13:12.040 --> 00:13:14.220
or was it I just wanna build something
00:13:14.220 --> 00:13:15.560
I'm creatively proud of?
00:13:15.560 --> 00:13:17.040
What were sort of your inputs
00:13:17.040 --> 00:13:18.840
and how did you end up coming up with FoodNOMS
00:13:18.840 --> 00:13:21.580
and a food tracking app as the direction you wanted to go?
00:13:21.580 --> 00:13:23.140
- I'm actually going back,
00:13:23.140 --> 00:13:25.440
so I have a FoodNOMS folder in notes
00:13:25.440 --> 00:13:30.880
that's where I have a ton of stuff. So, my first note is actually like this matrix. I was like
00:13:30.880 --> 00:13:36.400
coming up with like criteria and like ranking certain ideas across it. So, I haven't actually
00:13:36.400 --> 00:13:42.080
looked at this in a while. The criteria was like technical complexity, surface area, how novel the
00:13:42.080 --> 00:13:47.200
idea was and then how monetizable I thought the idea was because I guess I wanted all these things.
00:13:47.200 --> 00:13:49.040
- No, I mean, yeah, that's cool.
00:13:49.040 --> 00:13:54.640
- I was like really - I don't think I realized what I was getting myself into. I think it was
00:13:54.640 --> 00:14:00.720
being driven so by this like emotion, this pence of creativity. I wasn't really thinking
00:14:00.720 --> 00:14:05.920
through like, "Oh yeah, how am I gonna feel about this maybe in a year or so?" But I mean,
00:14:05.920 --> 00:14:12.320
ultimately what it was is I was like looking through my phone and I was looking at apps
00:14:12.320 --> 00:14:19.520
that I use that I pay for or that you know, I might pay for and I didn't think I had time
00:14:19.520 --> 00:14:23.120
or I wanted to like try to come up with something totally novel.
00:14:23.120 --> 00:14:30.360
I thought even though that's often I think probably a better idea is to try to come up
00:14:30.360 --> 00:14:32.680
with a new spin on things.
00:14:32.680 --> 00:14:39.100
I was like, you know, if I can just find something on my phone that I have to use or I use but
00:14:39.100 --> 00:14:44.680
I hate using, I think that maybe there's an opportunity there to effectively like build
00:14:44.680 --> 00:14:49.440
a better like mousetrap, like a more refined version of that thing.
00:14:49.440 --> 00:14:56.600
And so, you know, I think there was like a clear thing there, which was MyFitnessPal.
00:14:56.600 --> 00:15:00.940
And I had been using MyFitnessPal sort of on and off throughout time.
00:15:00.940 --> 00:15:07.660
And I had like developed this strange emotional, like, resentment towards the app, like, and
00:15:07.660 --> 00:15:10.520
I was trying to think like, why was that?
00:15:10.520 --> 00:15:17.600
And, you know, I think there's a lot of patterns and a lot of their design decisions, to me,
00:15:17.600 --> 00:15:24.400
made me feel bad as a user. And that was like a big enough motivation. And clearly, there's
00:15:24.400 --> 00:15:30.040
a big industry there. It's like, it's so competitive. And, you know, that at the time they were
00:15:30.040 --> 00:15:31.040
owned by Under Armour.
00:15:31.040 --> 00:15:36.400
Oh, really? Did they build it? Or did they buy it? Do you know?
00:15:36.400 --> 00:15:43.040
No, they acquired it at some point. You know, since then, it's been spun off or sold. But
00:15:43.040 --> 00:15:48.080
So yeah, I mean, I knew I knew that there was a lot of potential there.
00:15:48.080 --> 00:15:50.400
And it sounded super ambitious.
00:15:50.400 --> 00:15:52.720
It sounded like a really hard problem.
00:15:52.720 --> 00:15:57.560
But I could also kind of imagine how I would break it down how I'd build an MVP and be
00:15:57.560 --> 00:16:00.280
able to ship something within like a few months.
00:16:00.280 --> 00:16:02.880
I didn't spend that long, you know, thinking about it.
00:16:02.880 --> 00:16:05.240
I just kind of picked it and ran with it.
00:16:05.240 --> 00:16:12.600
I like that as a... Yeah, because I feel like the general, especially indie sort of
00:16:12.600 --> 00:16:18.120
way of thinking about things is like, "What's a problem that I want to solve?" And you're
00:16:18.120 --> 00:16:22.280
kind of trying to think of something new or something novel, which is obviously
00:16:22.280 --> 00:16:30.120
could be really big, but you have to then create a market for something. Whereas picking something
00:16:30.120 --> 00:16:35.000
where there already is a big market, that's what I accidentally did with Dark Noise. It's like,
00:16:35.000 --> 00:16:38.080
like that is already a big market.
00:16:38.080 --> 00:16:41.340
And if you can take a tiny piece of that pie,
00:16:41.340 --> 00:16:44.300
that is a legitimate business for,
00:16:44.300 --> 00:16:45.820
especially like an independent person
00:16:45.820 --> 00:16:47.660
or a small team or something.
00:16:47.660 --> 00:16:51.440
It's interesting too that I like the idea of
00:16:51.440 --> 00:16:53.900
what's something that I already use every day
00:16:53.900 --> 00:16:55.940
that I think your words are,
00:16:55.940 --> 00:16:58.800
generates resentment in me for some reason.
00:16:58.800 --> 00:17:03.700
And I've noticed like some of your marketing
00:17:03.700 --> 00:17:06.940
even explicitly calls out the app
00:17:06.940 --> 00:17:10.180
as an alternative to MyFitnessPal,
00:17:10.180 --> 00:17:11.880
which I thought was interesting.
00:17:11.880 --> 00:17:15.780
And like, I'm curious to hear your thinking on that.
00:17:15.780 --> 00:17:18.700
- That's like been, yeah,
00:17:18.700 --> 00:17:21.040
that's been sort of a newer development.
00:17:21.040 --> 00:17:23.460
I forget when I started to kind of shift the messaging there
00:17:23.460 --> 00:17:26.760
and I think maybe that was about nine months ago.
00:17:26.760 --> 00:17:30.420
Yeah, that, you know, at the very beginning of the journey,
00:17:30.420 --> 00:17:34.660
Like when I had the 1.0,
00:17:34.660 --> 00:17:36.980
I would have never had said something like that.
00:17:36.980 --> 00:17:37.820
- Sure, yeah.
00:17:37.820 --> 00:17:43.560
- Kind of, yeah, setting me up in a position to fail,
00:17:43.560 --> 00:17:46.020
but something that I've really struggled with
00:17:46.020 --> 00:17:47.740
is marketing with food noms.
00:17:47.740 --> 00:17:50.140
And I think that that does come back to
00:17:50.140 --> 00:17:52.500
like what we were just talking about,
00:17:52.500 --> 00:17:56.980
about how like super competitive space, not super novel,
00:17:56.980 --> 00:17:58.980
like there are elements that are novel,
00:17:58.980 --> 00:18:02.420
but I think to like an ordinary user
00:18:02.420 --> 00:18:07.420
who's maybe not in the like indie or the iOS app sphere,
00:18:07.420 --> 00:18:10.060
doesn't seem that novel to them.
00:18:10.060 --> 00:18:14.500
The thing that I'm trying at least today
00:18:14.500 --> 00:18:19.500
is how to make food noms be differentiated.
00:18:19.500 --> 00:18:22.260
Like what is its brand?
00:18:22.260 --> 00:18:23.300
What is its pitch?
00:18:23.300 --> 00:18:25.700
I've always struggled with this.
00:18:25.700 --> 00:18:30.700
This current branding of being a privacy focus
00:18:30.700 --> 00:18:33.100
alternative to MyFitnessPal,
00:18:33.100 --> 00:18:35.180
it's actually inspired a lot by,
00:18:35.180 --> 00:18:38.280
I kind of directly ripped them off.
00:18:38.280 --> 00:18:42.540
There's a company out there, Plausible.io,
00:18:42.540 --> 00:18:44.420
and their branding is similar,
00:18:44.420 --> 00:18:48.140
so they make an analytics product
00:18:48.140 --> 00:18:50.740
that is privacy-friendly.
00:18:50.740 --> 00:18:53.920
Their tagline is literally a privacy-friendly version of,
00:18:53.920 --> 00:18:58.320
or a competitor or alternative to Google Analytics.
00:18:58.320 --> 00:19:01.380
And they've seen a ton of success with that.
00:19:01.380 --> 00:19:03.680
They blog about how like their marketing
00:19:03.680 --> 00:19:08.200
and they kind of say this is what you should try doing.
00:19:08.200 --> 00:19:11.520
So I'm giving it a try and I think
00:19:11.520 --> 00:19:14.920
it is really mind blowing to me that
00:19:14.920 --> 00:19:19.320
I do hear people saying like they switched
00:19:19.320 --> 00:19:21.400
from MyFitnessPal to FoodMoms.
00:19:21.400 --> 00:19:26.000
I think two or three years ago, if someone said that to me,
00:19:26.000 --> 00:19:29.800
I would've, again, blown away, I wouldn't believe it,
00:19:29.800 --> 00:19:32.400
but there actually are people switching,
00:19:32.400 --> 00:19:36.320
so now I feel like maybe I should have some confidence.
00:19:36.320 --> 00:19:39.560
- Yeah, and it makes sense too.
00:19:39.560 --> 00:19:41.960
It's like you're either going out
00:19:41.960 --> 00:19:46.540
and trying to acquire new customers into this space,
00:19:46.540 --> 00:19:49.520
or there's already customers that you know
00:19:50.520 --> 00:19:56.240
care about this as a product and maybe some of them would prefer you over them.
00:19:56.240 --> 00:20:01.320
And privacy focused is, I think, a smart play because I don't think Food Noms is going to
00:20:01.320 --> 00:20:05.480
strategically change to be like that based on their current business model.
00:20:05.480 --> 00:20:12.840
And so, yeah, it's like there's I can't remember what book this is from, but there's a I wish
00:20:12.840 --> 00:20:14.080
I could remember the name of it.
00:20:14.080 --> 00:20:18.080
I'm getting it from a podcast as, you know, people do nowadays.
00:20:18.080 --> 00:20:21.620
But there's this thing called these seven powers of,
00:20:21.620 --> 00:20:23.760
I don't remember what it's called,
00:20:23.760 --> 00:20:26.680
but anyway, one of them is counter positioning,
00:20:26.680 --> 00:20:31.680
as you can build a company on that as your main thing,
00:20:31.680 --> 00:20:33.300
at least for a while.
00:20:33.300 --> 00:20:35.580
Because somehow you have to stand out,
00:20:35.580 --> 00:20:38.900
but the way you can stand out is versus something else.
00:20:38.900 --> 00:20:41.540
And I don't know, it seems like that makes sense.
00:20:41.540 --> 00:20:43.780
I feel like indies especially are afraid to do that
00:20:43.780 --> 00:20:46.600
because you don't wanna poke the beast.
00:20:46.600 --> 00:20:47.860
- Yeah. (laughs)
00:20:47.860 --> 00:20:52.860
- And it sounds similar to, is it 37 Signals?
00:20:52.860 --> 00:20:59.660
The guys that make, what is the email app now?
00:20:59.660 --> 00:21:00.680
- Oh, Hey?
00:21:00.680 --> 00:21:02.180
- Hey, yeah.
00:21:02.180 --> 00:21:04.460
One of his things was like, pick a fight,
00:21:04.460 --> 00:21:06.580
was like a thing.
00:21:06.580 --> 00:21:08.700
And I think, I don't know, maybe not everyone,
00:21:08.700 --> 00:21:10.900
but a lot of people like us don't necessarily
00:21:10.900 --> 00:21:13.420
wanna pick a fight and get in a fight
00:21:13.420 --> 00:21:15.260
as like a marketing ploy, but I don't feel like
00:21:15.260 --> 00:21:16.420
that's what counter-positioning is.
00:21:16.420 --> 00:21:18.320
I don't feel like that's what you're doing.
00:21:18.320 --> 00:21:21.880
It's more like, that's the best way to explain
00:21:21.880 --> 00:21:23.280
what it is that the app does
00:21:23.280 --> 00:21:26.500
and very quickly articulate what the benefit is
00:21:26.500 --> 00:21:29.440
versus the one that you might already be using.
00:21:29.440 --> 00:21:32.960
- Exactly, yeah, and I think something that,
00:21:32.960 --> 00:21:35.400
people will ask me, oh, what does your app do?
00:21:35.400 --> 00:21:38.160
And so I always immediately start out being like,
00:21:38.160 --> 00:21:39.600
oh, have you heard of MyFitnessPal?
00:21:39.600 --> 00:21:41.080
And-- - Yeah, yeah.
00:21:41.080 --> 00:21:42.520
- Eight times out of 10, they have,
00:21:42.520 --> 00:21:44.520
and then so I'll say, oh, I'm just a competitor.
00:21:44.520 --> 00:21:46.400
And so they instantly know it's the easiest way
00:21:46.400 --> 00:21:51.780
to explain versus saying like food tracker, you know, a lot of people can kind of guess
00:21:51.780 --> 00:21:52.780
what that means.
00:21:52.780 --> 00:21:59.560
But yeah, or like macro tracker, but I think macro tracker, like, so your, your protein,
00:21:59.560 --> 00:22:00.560
your fat, your carbs.
00:22:00.560 --> 00:22:01.560
Oh, okay.
00:22:01.560 --> 00:22:02.560
Okay.
00:22:02.560 --> 00:22:03.560
I guess I'm showing macro nutrients.
00:22:03.560 --> 00:22:04.560
Yeah, exactly.
00:22:04.560 --> 00:22:10.800
So you're an example of how like using macro tracker is going to kind of exclude you from
00:22:10.800 --> 00:22:15.800
from certain markets, but it may benefit you because if you're targeting that, like, yeah,
00:22:15.800 --> 00:22:18.280
at a more knowledgeable group,
00:22:18.280 --> 00:22:19.600
then you might have more success.
00:22:19.600 --> 00:22:23.360
This is where, again, it's so competitive.
00:22:23.360 --> 00:22:27.040
It's so, you're gonna find an example
00:22:27.040 --> 00:22:29.600
of any one of my competitors,
00:22:29.600 --> 00:22:32.080
and they're all trying a different angle on it.
00:22:32.080 --> 00:22:34.640
It's really hard to find your unique angle.
00:22:34.640 --> 00:22:37.280
- Okay, so we dove in a little deep here,
00:22:37.280 --> 00:22:39.520
but if we pull it back a little bit.
00:22:39.520 --> 00:22:43.080
So you gave yourself, you said six months?
00:22:43.080 --> 00:22:45.480
How long did you end up working on it
00:22:45.480 --> 00:22:48.840
before releasing that first version?
00:22:48.840 --> 00:22:52.340
- The entire time, pretty much.
00:22:52.340 --> 00:22:54.040
- I guess, how did that launch go?
00:22:54.040 --> 00:22:57.560
Did you do a lot of pre-marketing prep
00:22:57.560 --> 00:23:00.360
or laying the groundwork somehow?
00:23:00.360 --> 00:23:03.540
Or what was the strategy for that launch?
00:23:03.540 --> 00:23:07.040
- Again, initially, my expectations were super low
00:23:07.040 --> 00:23:09.640
and I don't even, at the onset,
00:23:09.640 --> 00:23:11.640
I was just focused on building something.
00:23:11.640 --> 00:23:16.640
And I think I, at a certain point,
00:23:16.640 --> 00:23:19.720
like pretty early on, I started a Twitter account
00:23:19.720 --> 00:23:21.720
and I started to like tweet some things
00:23:21.720 --> 00:23:25.200
and at least get like some of my friends
00:23:25.200 --> 00:23:26.560
kind of following it.
00:23:26.560 --> 00:23:30.560
And I started to share screenshots
00:23:30.560 --> 00:23:32.440
and things at some point.
00:23:32.440 --> 00:23:35.720
I remember there was this pivotal point though,
00:23:35.720 --> 00:23:38.240
I think it might've been one or two months
00:23:38.240 --> 00:23:41.440
before the launch had occurred.
00:23:41.440 --> 00:23:46.720
I had tweeted a video recording of,
00:23:46.720 --> 00:23:48.720
so one of the key or one of
00:23:48.720 --> 00:23:51.840
the true differentiating features of the app,
00:23:51.840 --> 00:23:54.040
was this like nutrition label scanner feature.
00:23:54.040 --> 00:23:54.640
>> Yeah.
00:23:54.640 --> 00:24:01.400
>> So the idea is that it used the vision API framework to parse out.
00:24:01.400 --> 00:24:03.600
It can look at the camera and look at
00:24:03.600 --> 00:24:07.520
a nutrition label and parse out the nutrients on that label.
00:24:07.520 --> 00:24:10.840
Because one of the issues I had been battling was
00:24:10.840 --> 00:24:14.760
that I didn't wanna pay for this super expensive
00:24:14.760 --> 00:24:19.520
food database that has really great barcode scanning,
00:24:19.520 --> 00:24:23.240
but I needed some way that people could obviously
00:24:23.240 --> 00:24:26.040
track their nutrients from these branded food labels.
00:24:26.040 --> 00:24:28.920
- Without having to manually type every single thing in.
00:24:28.920 --> 00:24:32.120
- The idea is like, oh, if this is good enough,
00:24:32.120 --> 00:24:35.120
maybe it would be good enough for people to switch,
00:24:35.120 --> 00:24:38.680
'cause I knew that that would be sort of a deal breaker
00:24:38.680 --> 00:24:48.800
an issue, you know, and it still is an issue to a degree, but yeah, the food database is
00:24:48.800 --> 00:24:53.040
a huge hurdle when making a food tracking app.
00:24:53.040 --> 00:24:57.280
And you know, especially when you're comparing to MyFitnessPal, who's existed for 20 years
00:24:57.280 --> 00:25:01.740
and crowdsource like the world.
00:25:01.740 --> 00:25:05.400
It's hard to compete, but I thought, oh, maybe if this like experience is good enough, maybe
00:25:05.400 --> 00:25:07.080
would be good enough for people to switch.
00:25:07.080 --> 00:25:12.640
And it was seriously, like, I hadn't originally thought to do it.
00:25:12.640 --> 00:25:14.600
It was like a random weekend.
00:25:14.600 --> 00:25:21.280
I'm like, "Hey, I remember at WWDC, they talked about this new Vision API.
00:25:21.280 --> 00:25:25.520
I should try and like hack around and see what I can come up with."
00:25:25.520 --> 00:25:26.880
And I was like shocked.
00:25:26.880 --> 00:25:32.760
In just like a few hours, I had built like a prototype and it actually like kind of worked.
00:25:32.760 --> 00:25:33.960
It kind of worked really well.
00:25:35.160 --> 00:25:39.120
And so in a matter of like two days,
00:25:39.120 --> 00:25:42.480
I put together like a working UI and demo
00:25:42.480 --> 00:25:45.880
and I did the screen recording and I tweeted that out.
00:25:45.880 --> 00:25:50.880
And that tweet somehow went like sort of,
00:25:50.880 --> 00:25:54.760
I call it like mini viral, like somewhat viral, you know?
00:25:54.760 --> 00:25:57.560
I was getting a ton of retweets, ton of interaction,
00:25:57.560 --> 00:25:58.720
you know, from this Twitter account
00:25:58.720 --> 00:26:01.380
that had probably like 30 followers.
00:26:01.380 --> 00:26:04.480
And that's where like I really got on the radar.
00:26:04.480 --> 00:26:09.480
I remember, I think Federico replied to it, John Voorhees,
00:26:09.480 --> 00:26:13.140
that's where it got on a bunch of people's radars.
00:26:13.140 --> 00:26:16.440
And I think Robert Scoble retweeted it.
00:26:16.440 --> 00:26:19.740
And it was crazy.
00:26:19.740 --> 00:26:22.540
And that's where I was starting to get kind of scared.
00:26:22.540 --> 00:26:27.540
It's like, uh-oh, this actually is sort of interesting
00:26:27.540 --> 00:26:30.460
and people are interested in this.
00:26:30.460 --> 00:26:32.140
- So what do you mean by scared then?
00:26:32.140 --> 00:26:35.060
scared like you started getting expectations for yourself or?
00:26:35.060 --> 00:26:35.540
Yeah.
00:26:35.540 --> 00:26:35.820
Yeah.
00:26:35.820 --> 00:26:39.260
It's like, oh, I better not screw this up.
00:26:39.260 --> 00:26:40.580
Ah, yeah.
00:26:40.580 --> 00:26:40.940
Okay.
00:26:40.940 --> 00:26:41.740
I know that feeling.
00:26:41.740 --> 00:26:42.660
Yeah.
00:26:42.660 --> 00:26:43.100
Yeah.
00:26:43.100 --> 00:26:49.740
So I think that's when I started to try to come up with like some sort of a quote
00:26:49.740 --> 00:26:52.780
plan, I think it might've been, was it Jordan?
00:26:52.780 --> 00:26:54.940
Uh, you know, Jordan Morgan.
00:26:54.940 --> 00:26:56.140
Talking about his blog posts.
00:26:56.140 --> 00:26:57.700
Did he have that blog post?
00:26:57.700 --> 00:26:58.900
I think he, yeah.
00:26:58.900 --> 00:26:59.580
So it was him.
00:26:59.620 --> 00:27:05.460
So yeah, he wrote a blog post pretty much at the perfect time for me that was detailing
00:27:05.460 --> 00:27:08.980
how to go about doing a launch for an indie app.
00:27:08.980 --> 00:27:13.020
And I pretty much just looked at that and that was my checklist.
00:27:13.020 --> 00:27:17.380
At least two weeks before, notify people at the press, have some sort of press kit with
00:27:17.380 --> 00:27:20.300
images, a description.
00:27:20.300 --> 00:27:29.060
And I did all that and I crossed my fingers and it was wild.
00:27:29.060 --> 00:27:33.380
I woke up on launch day, I had done pre-orders as well,
00:27:33.380 --> 00:27:34.700
and I woke up on the launch day,
00:27:34.700 --> 00:27:39.340
and I remember I woke up at 5 a.m. or something my time,
00:27:39.340 --> 00:27:42.140
and I need to make some sort of graphic
00:27:42.140 --> 00:27:44.340
or some sort of art.
00:27:44.340 --> 00:27:45.820
I hadn't thought to do that,
00:27:45.820 --> 00:27:50.340
and I remember bringing out a cutting board
00:27:50.340 --> 00:27:51.860
and my mirrorless camera,
00:27:51.860 --> 00:27:54.660
and having the phone displayed next to a bowl of oatmeal.
00:27:54.660 --> 00:27:56.220
(laughing)
00:27:56.220 --> 00:27:57.340
I took a picture of that,
00:27:57.340 --> 00:28:01.640
and I think I blogged about it and announced the launch.
00:28:01.640 --> 00:28:04.300
And it's funny that that picture that I took that morning
00:28:04.300 --> 00:28:09.300
was used in four out of five of the top blog announcements.
00:28:09.300 --> 00:28:12.780
- That's awesome.
00:28:12.780 --> 00:28:14.540
Anybody who's getting close to a launch,
00:28:14.540 --> 00:28:17.440
definitely include press kit photos and stuff
00:28:17.440 --> 00:28:20.780
because they definitely use that stuff.
00:28:20.780 --> 00:28:22.620
I think if you can make their job easier,
00:28:22.620 --> 00:28:25.300
they're way more likely to write an article about you.
00:28:25.300 --> 00:28:28.020
- Yeah, I had included screenshots,
00:28:28.020 --> 00:28:31.020
but I hadn't thought to do sort of like piece of art,
00:28:31.020 --> 00:28:32.620
you know, like a hero image.
00:28:32.620 --> 00:28:34.460
And I think that was what was missing.
00:28:34.460 --> 00:28:37.100
Yeah, so yeah, definitely recommend that.
00:28:37.100 --> 00:28:40.340
- I've noticed that too with like when iOS updates come out
00:28:40.340 --> 00:28:44.180
and a lot of places will do those lists of like this year,
00:28:44.180 --> 00:28:47.980
you know, apps with great lock screen widgets or whatever.
00:28:47.980 --> 00:28:51.580
If you tweet out and include in a press kit too,
00:28:51.580 --> 00:28:54.060
but even if you're just tweeting out a picture
00:28:54.060 --> 00:28:57.000
and you have a little hero shot of it.
00:28:57.000 --> 00:28:58.300
I don't know if it makes it more likely
00:28:58.300 --> 00:28:59.540
you'll get in one of those lists,
00:28:59.540 --> 00:29:01.320
but if you do get on one of those lists,
00:29:01.320 --> 00:29:03.260
they'll usually include that hero shot.
00:29:03.260 --> 00:29:05.540
And those stand out so much more than the other ones
00:29:05.540 --> 00:29:07.700
on the bullet point list or whatever.
00:29:07.700 --> 00:29:10.540
So that's, it's good to have like,
00:29:10.540 --> 00:29:14.360
even a light understanding of Figma or something like that,
00:29:14.360 --> 00:29:17.100
just to be able to put together those last minute,
00:29:17.100 --> 00:29:18.580
oh no, I have a release tomorrow
00:29:18.580 --> 00:29:20.160
and I've been thinking about code.
00:29:20.160 --> 00:29:22.520
I should probably get some image out there.
00:29:22.520 --> 00:29:28.680
I feel like that's a surprisingly valuable ability to be able to knock those out really quick.
00:29:28.680 --> 00:29:34.040
Talking about the launch morning, it was crazy. It was like, I couldn't even think straight.
00:29:34.040 --> 00:29:36.600
I don't know, maybe if you could relate to that.
00:29:36.600 --> 00:29:37.560
Oh, yes.
00:29:37.560 --> 00:29:38.600
Yeah.
00:29:38.600 --> 00:29:46.280
I could tell you like, like five details about launch day, because it was one just big blur.
00:29:46.280 --> 00:29:50.440
Like it was, I think it was the same day that Taylor Swift's,
00:29:51.160 --> 00:29:54.760
Is lover the name of the album? I know that's the song on there. I can't remember now.
00:29:54.760 --> 00:30:00.760
But I was like, Oh, I'll play that. And I'll take I took the morning off initially, I think.
00:30:00.760 --> 00:30:06.520
And I was like, I'll just play that. And I'll like answers, tweets, hopefully somebody will
00:30:06.520 --> 00:30:10.360
tweet about it or whatever. And then all of a sudden, it's like, two o'clock in the afternoon,
00:30:10.360 --> 00:30:15.160
I haven't eaten lunch. And I was like, what happened? Yeah, it's very weird feeling.
00:30:15.160 --> 00:30:17.920
- Definitely was not prepared for that.
00:30:17.920 --> 00:30:19.040
(laughing)
00:30:19.040 --> 00:30:23.840
But I just felt, I don't know, it was incredible.
00:30:23.840 --> 00:30:27.060
And it was, yeah, it kind of like,
00:30:27.060 --> 00:30:30.800
I felt like I'd really achieved something.
00:30:30.800 --> 00:30:34.940
And I was definitely incredibly proud of myself for that.
00:30:34.940 --> 00:30:36.960
And also, yeah, again, scared.
00:30:36.960 --> 00:30:38.700
Scared, I was now thinking about like,
00:30:38.700 --> 00:30:39.820
oh no, what's next?
00:30:39.820 --> 00:30:41.820
How do I keep this momentum going?
00:30:41.820 --> 00:30:45.140
And so it kind of became this like a, this, this, uh,
00:30:45.140 --> 00:30:49.620
to burn out on. Yeah, yeah, yeah, exactly. Yeah.
00:30:49.620 --> 00:30:51.100
We haven't talked about yet, uh,
00:30:51.100 --> 00:30:54.380
what your business model was like from the beginning.
00:30:54.380 --> 00:30:58.220
So you had already mentioned subscriptions and my memory serves me correct.
00:30:58.220 --> 00:31:00.740
That was the first thing that you had. Yes.
00:31:00.740 --> 00:31:03.620
And it really hasn't changed much since then.
00:31:03.620 --> 00:31:08.620
I did make a relatively large change about six months in where I made a set of
00:31:08.620 --> 00:31:11.660
features that was behind the paywall.
00:31:11.700 --> 00:31:13.700
I made that available for free.
00:31:13.700 --> 00:31:16.980
And that was really the only change.
00:31:16.980 --> 00:31:18.420
- What was the thinking there?
00:31:18.420 --> 00:31:21.100
- The thinking there was, so that was,
00:31:21.100 --> 00:31:25.560
so the original MVP, right, it was like so bare bones,
00:31:25.560 --> 00:31:28.140
but I think it was a pretty good MVP.
00:31:28.140 --> 00:31:30.780
It was good enough, and it did not have
00:31:30.780 --> 00:31:33.740
any sort of like onboarding experience.
00:31:33.740 --> 00:31:36.540
I realized pretty quickly that I needed
00:31:36.540 --> 00:31:38.380
some sort of onboarding flow,
00:31:38.380 --> 00:31:41.900
because a lot of users were not,
00:31:41.900 --> 00:31:45.820
like I felt like the real value you get with the app
00:31:45.820 --> 00:31:47.980
is you have to set up some sort of goals.
00:31:47.980 --> 00:31:51.520
You have to set a calorie goal or a protein goal
00:31:51.520 --> 00:31:54.500
of some sort that you can like measure yourself against.
00:31:54.500 --> 00:31:57.180
If you're just like tracking your food
00:31:57.180 --> 00:32:00.140
without having any goal, I think pretty useless
00:32:00.140 --> 00:32:03.820
and I was seeing like in the analytics
00:32:03.820 --> 00:32:06.660
that a lot of people were not setting up goals
00:32:06.660 --> 00:32:09.060
and that's something I really wanted them to do.
00:32:09.060 --> 00:32:10.980
So I knew I needed to make some sort of
00:32:10.980 --> 00:32:13.060
onboarding experience to try to encourage that.
00:32:13.060 --> 00:32:14.940
And when I was designing that,
00:32:14.940 --> 00:32:19.940
I realized that I think the issue is
00:32:19.940 --> 00:32:22.280
I was limiting the number of goals
00:32:22.280 --> 00:32:24.660
or the types of goals that you could set up
00:32:24.660 --> 00:32:25.680
behind the paywall.
00:32:25.680 --> 00:32:29.020
And I realized then that it just didn't feel right
00:32:29.020 --> 00:32:32.820
that you had to pay in order to have
00:32:32.820 --> 00:32:34.020
a good onboarding experience.
00:32:34.020 --> 00:32:37.300
So it was a pretty easy decision from there.
00:32:37.300 --> 00:32:39.300
- Launch went well.
00:32:39.300 --> 00:32:41.180
You said you were scared, what do I do going forward?
00:32:41.180 --> 00:32:43.900
But it's been three years and the app's still there.
00:32:43.900 --> 00:32:46.900
So like, what was the next things that you did then?
00:32:46.900 --> 00:32:49.900
- I will say it has been not easy
00:32:49.900 --> 00:32:54.780
and it has been a continuous learning process since then.
00:32:54.780 --> 00:32:56.860
What I decided to do is,
00:32:56.860 --> 00:32:59.260
okay, I'm gonna give it another three months
00:32:59.260 --> 00:33:00.940
'cause I initially said six months
00:33:00.940 --> 00:33:04.140
And then I think that launch like totally blew me away
00:33:04.140 --> 00:33:06.900
that it was way beyond what I expected.
00:33:06.900 --> 00:33:09.820
And sort of the reaction and the feedback I was getting,
00:33:09.820 --> 00:33:13.100
like people were really liking what I had built.
00:33:13.100 --> 00:33:15.860
Like, okay, maybe I should take this like a step further,
00:33:15.860 --> 00:33:17.620
see where this goes.
00:33:17.620 --> 00:33:19.080
So I would say, all right,
00:33:19.080 --> 00:33:20.460
I'm gonna give it another three months.
00:33:20.460 --> 00:33:23.260
And then three months turned into like six months
00:33:23.260 --> 00:33:24.700
turned into nine months.
00:33:24.700 --> 00:33:28.180
And I was just like, you know, heads down,
00:33:28.180 --> 00:33:31.260
super focused on trying to continuously iterate
00:33:31.260 --> 00:33:33.380
and improve the app and, you know,
00:33:33.380 --> 00:33:36.220
again, trying to prioritize, like,
00:33:36.220 --> 00:33:38.220
what is the easiest thing I can do
00:33:38.220 --> 00:33:41.540
that I can ship, like, next week or, you know,
00:33:41.540 --> 00:33:45.300
in two weeks that is going to really make a difference.
00:33:45.300 --> 00:33:47.180
And I just kept doing that.
00:33:47.180 --> 00:33:49.020
And then I'd start to get to these points
00:33:49.020 --> 00:33:53.300
where it's like, okay, the next big pressing issue
00:33:53.300 --> 00:33:57.300
is gonna be one that takes a lot more effort.
00:33:57.300 --> 00:34:01.060
One of those was like the community database and the story there.
00:34:01.060 --> 00:34:04.820
So the database, like I said,
00:34:04.820 --> 00:34:14.700
has always been this big hairy problem and it still continues to be.
00:34:14.700 --> 00:34:22.620
I knew that the database that I had in the app was not the best.
00:34:22.620 --> 00:34:25.260
Honestly, it's still not the best.
00:34:25.260 --> 00:34:28.540
But I was trying to think like what can I do to make it better?
00:34:28.540 --> 00:34:32.880
You know, I can go down the path of paying another company like a bunch of money
00:34:32.880 --> 00:34:38.780
Every month like ridiculous amount I could figure out like ways to license it
00:34:38.780 --> 00:34:42.140
And then I started to actually get like user requests to be like I had
00:34:42.140 --> 00:34:46.420
You should try just crowdsourcing. I'd be happy to help you out and like
00:34:46.420 --> 00:34:49.220
fill out the database and I I
00:34:49.220 --> 00:34:52.740
decided to go with that approach and
00:34:53.460 --> 00:34:58.300
And I think that was like one of the biggest updates
00:34:58.300 --> 00:34:59.380
since the original.
00:34:59.380 --> 00:35:03.740
There's kind of been these like major inflection points
00:35:03.740 --> 00:35:07.140
and if you look at like kind of FoodDOM's growth since then
00:35:07.140 --> 00:35:10.420
and the community database is definitely one of them.
00:35:10.420 --> 00:35:14.740
- That had a inflection point in like user acquisition
00:35:14.740 --> 00:35:16.020
growth wise?
00:35:16.020 --> 00:35:16.980
Is that what you mean?
00:35:16.980 --> 00:35:20.100
- No, I think it actually had more of an effect
00:35:20.100 --> 00:35:22.940
on like retention and activation.
00:35:22.940 --> 00:35:25.860
So people that were downloading the app,
00:35:25.860 --> 00:35:28.780
they were way more likely to actually keep using it.
00:35:28.780 --> 00:35:29.860
- And was that immediate?
00:35:29.860 --> 00:35:33.340
'Cause in my head, that's not a feature
00:35:33.340 --> 00:35:34.980
that people would be like,
00:35:34.980 --> 00:35:37.940
"Oh, I'm gonna pay for this app because I can add to it."
00:35:37.940 --> 00:35:39.300
It would be like over time,
00:35:39.300 --> 00:35:42.500
it would make your database way better.
00:35:42.500 --> 00:35:44.340
- The real benefit was not immediate.
00:35:44.340 --> 00:35:46.340
And so that inflection point,
00:35:46.340 --> 00:35:48.220
maybe it wasn't truly an inflection point,
00:35:48.220 --> 00:35:50.340
it was a critical point, I should say.
00:35:50.340 --> 00:35:51.700
- Yeah, yeah, I'm not trying to word,
00:35:51.700 --> 00:35:54.220
I'm more just curious, like what the impact was.
00:35:54.220 --> 00:35:58.220
- I mean, there was also with that update,
00:35:58.220 --> 00:35:59.660
I didn't talk about it as much,
00:35:59.660 --> 00:36:03.100
but every time I revisit the database,
00:36:03.100 --> 00:36:06.460
I make some sort of big improvement beyond.
00:36:06.460 --> 00:36:09.040
So the community database update
00:36:09.040 --> 00:36:12.580
also refreshed a lot of the food.
00:36:12.580 --> 00:36:16.820
So I have a base data source that's free
00:36:16.820 --> 00:36:21.680
for a lot of the foods in the community database.
00:36:21.680 --> 00:36:26.680
and I refreshed that and I improved the search algorithm.
00:36:26.680 --> 00:36:30.000
So I think that definitely had an impact.
00:36:30.000 --> 00:36:34.280
- Nice, and so that was,
00:36:34.280 --> 00:36:35.760
I'm not gonna pretend to understand time.
00:36:35.760 --> 00:36:37.480
I mean, I remember when that update came out,
00:36:37.480 --> 00:36:41.040
but that could have been last year or two years ago
00:36:41.040 --> 00:36:42.640
or probably not three years ago, I guess.
00:36:42.640 --> 00:36:45.240
But how long has that been out then?
00:36:45.240 --> 00:36:49.600
- I think I shipped that here.
00:36:49.600 --> 00:36:53.000
The original version came out in May, 2020.
00:36:53.000 --> 00:36:54.200
- 2020, okay.
00:36:54.200 --> 00:36:56.300
- So it was actually a long time ago.
00:36:56.300 --> 00:36:59.800
- Over two years of building out a database,
00:36:59.800 --> 00:37:02.140
and which is kind of slowly building out
00:37:02.140 --> 00:37:03.760
a little moat for you,
00:37:03.760 --> 00:37:06.200
compared to at least newcomers into the space.
00:37:06.200 --> 00:37:08.300
Because yeah, it's like your own database
00:37:08.300 --> 00:37:09.880
that you're not having to pay for,
00:37:09.880 --> 00:37:13.680
versus yeah, you could jump right in and pay for one,
00:37:13.680 --> 00:37:15.960
but that's gonna make your whole cost structure,
00:37:15.960 --> 00:37:17.160
like the app would just have to be
00:37:17.160 --> 00:37:18.600
a lot more expensive, right?
00:37:18.600 --> 00:37:21.240
I've been, again, very surprised.
00:37:21.240 --> 00:37:23.840
I think I had low expectations.
00:37:23.840 --> 00:37:30.000
And yeah, I'm pretty amazed at how many people actually
00:37:30.000 --> 00:37:31.500
have contributed to the database.
00:37:31.500 --> 00:37:35.040
I think a lot of that has to do with that UX flow.
00:37:35.040 --> 00:37:41.640
So a part of that update also changed the scanning UI subtly.
00:37:41.640 --> 00:37:43.640
So it was a very seamless flow.
00:37:43.640 --> 00:37:45.880
You would click the barcode scan button.
00:37:45.880 --> 00:37:47.040
It would scan the barcode.
00:37:47.040 --> 00:37:51.440
if it failed, then it would just seamlessly bring up the scanning UI for the label.
00:37:51.440 --> 00:37:53.600
Yeah, you don't have to choose.
00:37:53.600 --> 00:37:59.360
Yeah, they were not like two separate flows and like a really clunky experience.
00:37:59.360 --> 00:38:08.320
And yeah, I checked right before this and I've gotten over 80,000 like unique contributions
00:38:08.320 --> 00:38:12.680
to the database, which I think is just, just pretty cool.
00:38:12.680 --> 00:38:18.360
It's like, it's cool too, because that represents like real humans using the thing you make.
00:38:18.360 --> 00:38:19.400
Yeah, yeah.
00:38:19.400 --> 00:38:21.000
And that's like unique too.
00:38:21.000 --> 00:38:26.120
So like the number of actual like, you know, amendments or, or sure.
00:38:26.120 --> 00:38:32.920
Yeah, just like, it is it is wild to think about because yeah, I never would have imagined
00:38:32.920 --> 00:38:39.640
that that many, like user generated content is always a sort of thorny subject.
00:38:39.640 --> 00:38:42.000
And scary, I think, especially for indie devs.
00:38:42.000 --> 00:38:46.800
But in this case, you're not storing images or anything with those, are you?
00:38:46.800 --> 00:38:47.800
No, no.
00:38:47.800 --> 00:38:52.920
Yeah, so I guess, have you had issues that you've had to deal with as far as bad actors
00:38:52.920 --> 00:38:54.440
or whatever?
00:38:54.440 --> 00:38:58.000
I'm actually pretty happy with how I went about this.
00:38:58.000 --> 00:39:06.040
So I actually have on the server side a set of heuristics and a series of checks.
00:39:06.040 --> 00:39:11.240
There's probably like 20 different checks that every contribution goes through.
00:39:11.240 --> 00:39:15.920
And then, you know, if any of those checks like get flagged, then it goes into this sort
00:39:15.920 --> 00:39:16.980
of like pending state.
00:39:16.980 --> 00:39:20.400
And then I have like human moderators can go through and review.
00:39:20.400 --> 00:39:27.560
So yeah, like look for, you know, swear words, I'll look for like, you know, numbers that
00:39:27.560 --> 00:39:28.600
are outliers.
00:39:28.600 --> 00:39:34.200
They're like in the 99 percentile of some metric or like some things just don't add
00:39:34.200 --> 00:39:35.200
up.
00:39:35.200 --> 00:39:40.340
Or if it's like I really want the database to have high quality.
00:39:40.340 --> 00:39:43.120
I think quality is actually better than quantity.
00:39:43.120 --> 00:39:46.340
It was actually one of my gripes with MyFitnessPal is,
00:39:46.340 --> 00:39:48.400
I felt like you would search something and you'd get
00:39:48.400 --> 00:39:50.600
like 30 results for the same thing,
00:39:50.600 --> 00:39:52.740
and a lot of times it was hard to pick which one.
00:39:52.740 --> 00:39:54.160
>> Yeah, for sure.
00:39:54.160 --> 00:39:59.640
>> So I really wanted to try to have a high quality bar.
00:39:59.640 --> 00:40:02.760
I tried to make as much automated as possible too
00:40:02.760 --> 00:40:06.400
because I'm running this all on the side.
00:40:06.400 --> 00:40:11.960
Since then I've gotten another full-time job and I do hire
00:40:11.960 --> 00:40:16.640
contractors for help on the human moderation side.
00:40:16.640 --> 00:40:22.120
But people have been good actors.
00:40:22.120 --> 00:40:27.400
One thing I also implemented was sign in with Apple.
00:40:27.400 --> 00:40:29.640
In order to use the community database,
00:40:29.640 --> 00:40:32.440
there is that friction that you have to sign in.
00:40:32.440 --> 00:40:38.160
And the cool thing there is that it doesn't ask for your name or email address. You can
00:40:38.160 --> 00:40:43.600
actually like when you're configuring the sign with Apple integration, you can disable
00:40:43.600 --> 00:40:48.580
that. So I'm still like not collecting your email ever or your name. And I think that's
00:40:48.580 --> 00:40:55.080
really cool. But it uniquely identifies you and sort of like has this extra layer of confidence
00:40:55.080 --> 00:40:58.200
that you're a real human being, a real device.
00:40:58.200 --> 00:41:05.080
Yeah, because Apple IDs, more than Google or Facebook, Apple IDs are, it's like a pain
00:41:05.080 --> 00:41:08.760
if you wanted to have like burner Apple IDs or something.
00:41:08.760 --> 00:41:09.760
Yeah, yeah.
00:41:09.760 --> 00:41:11.160
Yeah, that's interesting.
00:41:11.160 --> 00:41:12.160
That's cool.
00:41:12.160 --> 00:41:13.740
So I think that's helped a lot.
00:41:13.740 --> 00:41:16.920
This has been going on for three years at this point.
00:41:16.920 --> 00:41:20.720
How like, how do you see it going forward into the future?
00:41:20.720 --> 00:41:27.500
Is it is it kind of a fun side hobby that gives you your creative outlet for whenever
00:41:27.500 --> 00:41:28.780
where you're not getting that, you know,
00:41:28.780 --> 00:41:30.340
in your normal jobby job?
00:41:30.340 --> 00:41:32.460
What are you sort of looking at in the future
00:41:32.460 --> 00:41:33.500
with FoodNOMS?
00:41:33.500 --> 00:41:35.080
- Yeah, great question.
00:41:35.080 --> 00:41:38.460
I honestly don't know.
00:41:38.460 --> 00:41:41.620
I could see FoodNOMS going in so many different directions.
00:41:41.620 --> 00:41:43.460
You know, I think in the immediate term,
00:41:43.460 --> 00:41:47.020
I have been working on this like huge update,
00:41:47.020 --> 00:41:49.420
I've kind of fallen into this trap of like,
00:41:49.420 --> 00:41:51.580
oh, I need to ship like a 2.0,
00:41:51.580 --> 00:41:54.500
and I've like let that, the scope of that,
00:41:54.500 --> 00:41:56.180
like I think grow into something
00:41:56.180 --> 00:41:58.140
and it's like almost unmanageable.
00:41:58.140 --> 00:42:01.060
And I've been talking about it for a super long time.
00:42:01.060 --> 00:42:05.900
So I am getting somewhat close to having that shipped.
00:42:05.900 --> 00:42:10.020
And I hope that people will like that update.
00:42:10.020 --> 00:42:11.940
I think it brings a lot of,
00:42:11.940 --> 00:42:14.460
especially existing FoodNomz users,
00:42:14.460 --> 00:42:16.340
I get like so much feedback
00:42:16.340 --> 00:42:18.420
and so much great like positive feedback.
00:42:18.420 --> 00:42:22.300
But there's always these like key things,
00:42:22.300 --> 00:42:24.460
these key features that I know that FoodNomz
00:42:24.460 --> 00:42:31.580
is missing today that I hope that people will be excited to see as part of this update.
00:42:31.580 --> 00:42:40.500
And kind of just interested to see how that update goes. I think I'm going to try to do
00:42:40.500 --> 00:42:46.100
like another sort of launch. I think it may be a little bit difficult. I haven't really
00:42:46.100 --> 00:42:50.140
found that like one unique feature or headliner, I think.
00:42:50.140 --> 00:42:53.020
>> The story. >> The tricky part. Yeah, the story.
00:42:53.020 --> 00:42:54.060
>> Yeah.
00:42:54.060 --> 00:42:58.700
>> I'm going to still try and I think I'm also just at this point,
00:42:58.700 --> 00:42:59.900
ready to get it out the door.
00:42:59.900 --> 00:43:05.620
I've been working on it for so long and ready to get it ready.
00:43:05.620 --> 00:43:14.420
But we'll see where that goes and I think that will dictate what the future is for the app.
00:43:14.420 --> 00:43:19.220
But I love working on it on the side.
00:43:19.220 --> 00:43:21.540
It is that creative outlet.
00:43:21.540 --> 00:43:26.740
And I've also just like, I think, just learned so much from the experience working on it
00:43:26.740 --> 00:43:34.260
that it's really made me like a better, I don't know, better engineer, better designer,
00:43:34.260 --> 00:43:40.660
better copywriter, better marketer, better PM. And those are like super valuable skills that
00:43:40.660 --> 00:43:47.140
I'm taking with me to other parts of my life, primarily my main job. And I definitely value
00:43:47.140 --> 00:43:50.460
- I'm excited to see where it goes.
00:43:50.460 --> 00:43:52.900
Before I let you go, I'll ask you the question
00:43:52.900 --> 00:43:54.100
I ask everybody to end the show out,
00:43:54.100 --> 00:43:55.980
which is what's a person or people out there
00:43:55.980 --> 00:43:57.900
that have inspired you that you'd recommend
00:43:57.900 --> 00:43:59.580
other people check out?
00:43:59.580 --> 00:44:04.580
- Yeah, so I think, first I feel obligated to,
00:44:04.580 --> 00:44:10.420
I think there have been so many guests on the show
00:44:10.420 --> 00:44:14.580
that I look up to and I think they've been commonly cited,
00:44:14.580 --> 00:44:19.580
so I don't wanna repeat the same usual suspects.
00:44:19.580 --> 00:44:21.860
- Yeah, you gotta have a hipster pick.
00:44:21.860 --> 00:44:22.700
- Yeah, exactly.
00:44:22.700 --> 00:44:25.340
- You gotta say somebody before they're cool
00:44:25.340 --> 00:44:27.620
and then you can claim ownership
00:44:27.620 --> 00:44:29.340
over them being cool afterwards.
00:44:29.340 --> 00:44:30.180
- Yeah.
00:44:30.180 --> 00:44:31.460
(laughing)
00:44:31.460 --> 00:44:35.340
I think I try to think of a unique answer here.
00:44:35.340 --> 00:44:40.340
I think one person that genuinely has had a big impact on me
00:44:40.820 --> 00:44:45.540
and someone I look up to is the CEO of the previous company
00:44:45.540 --> 00:44:48.460
I used to work for, Amplitude.
00:44:48.460 --> 00:44:50.900
His name is Spencer Skates.
00:44:50.900 --> 00:44:55.060
And you will find him if you search for him.
00:44:55.060 --> 00:44:57.940
You'll see, he'll have some blog posts
00:44:57.940 --> 00:45:01.060
and he's been interviewed on some podcasts.
00:45:01.060 --> 00:45:03.580
But I just wanted to give a shout out to him.
00:45:03.580 --> 00:45:06.160
He's had a huge impact on me.
00:45:06.160 --> 00:45:10.100
I think sometimes there's this stereotypes
00:45:10.100 --> 00:45:14.540
around tech startup CEOs and there's often,
00:45:14.540 --> 00:45:19.180
painted in the worst light, Spencer, I think is an example
00:45:19.180 --> 00:45:23.380
of just a really, really great human being,
00:45:23.380 --> 00:45:24.940
really great leader.
00:45:24.940 --> 00:45:28.220
I think, I just wanna say like he's super smart
00:45:28.220 --> 00:45:30.460
and super like humble.
00:45:30.460 --> 00:45:33.180
And I think one of the things I admire the most
00:45:33.180 --> 00:45:35.920
is when he's wrong, he like will openly admit to it
00:45:35.920 --> 00:45:37.340
and fix the issue.
00:45:38.380 --> 00:45:42.060
so many people in this world will not do those things.
00:45:42.060 --> 00:45:45.980
They won't admit to it, they will admit to it,
00:45:45.980 --> 00:45:47.660
but won't actually address the problem.
00:45:47.660 --> 00:45:52.460
And I think, yeah, he's had a huge impact on me
00:45:52.460 --> 00:45:55.780
as sort of an example of a true leader.
00:45:55.780 --> 00:45:58.980
- Yeah, that's a nice, what's the right word?
00:45:58.980 --> 00:46:03.980
Not antidote, but a counter example to all of the
00:46:04.900 --> 00:46:09.660
TV specials about CEOs in the tech space lately
00:46:09.660 --> 00:46:13.400
that are not exactly shining examples of human beings.
00:46:13.400 --> 00:46:15.940
But yeah, there's a lot of companies
00:46:15.940 --> 00:46:17.540
and a lot of them are really great.
00:46:17.540 --> 00:46:20.380
And so yeah, that's cool to hear about one that is.
00:46:20.380 --> 00:46:22.140
Well, before I let you go,
00:46:22.140 --> 00:46:24.260
where can people find you and your work?
00:46:24.260 --> 00:46:27.500
- Yeah, so I'm on Twitter @ryanashcraft,
00:46:27.500 --> 00:46:30.660
R-Y-A-N-A-S-H-C-R-A-F-T.
00:46:30.660 --> 00:46:32.540
You know, I tweet about most stuff there
00:46:32.540 --> 00:46:35.820
And then I also have Foodoms has a Twitter account,
00:46:35.820 --> 00:46:40.820
food_noms and then foodoms.com.
00:46:40.820 --> 00:46:42.620
(upbeat music)
00:46:42.620 --> 00:46:43.860
- Thanks for listening.
00:46:43.860 --> 00:46:46.660
This episode was edited by Jonathan Ruiz.
00:46:46.660 --> 00:46:48.120
If you'd like to discuss the show,
00:46:48.120 --> 00:46:51.020
you can find me on Twitter @_chuckyc
00:46:51.020 --> 00:46:53.580
or tweet the show directly @launchedfm.
00:46:53.580 --> 00:46:55.760
I'd really appreciate a rating or review
00:46:55.760 --> 00:46:57.600
in your podcast app of choice.
00:46:57.600 --> 00:47:01.780
And you can find show notes and more @launchedfm.com.
00:47:01.780 --> 00:47:04.360
(upbeat music)
00:47:04.360 --> 00:47:06.940
(upbeat music)
00:47:06.940 --> 00:47:09.520
(upbeat music)
00:47:09.520 --> 00:47:12.100
(upbeat music)
00:47:12.100 --> 00:47:14.680
(upbeat music)
00:47:14.680 --> 00:47:17.260
(upbeat music)
00:47:17.260 --> 00:47:19.840
(upbeat music)
00:47:19.840 --> 00:47:22.180
(whooshing)