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)