00:00:35.920
hello it's an honor to be opening up the first ever rail SAS conference thank you
00:00:41.200
for having me do this Andrew the 1st of January 2020 was a
00:00:46.760
good day I was really happy after working on my startup the
00:00:52.079
sty graph every day for one years straight mostly alone we had recently reached the coveted Milestone of
00:01:00.719
100 user signups then the story graph was a book
00:01:06.680
Discovery tool that helped you to choose which book to read next one of the main parts of the website was one large list
00:01:13.600
of a couple thousand books you could filter it down by mood Pace fiction non-fiction genre book size
00:01:21.119
and more the earliest users had been friends of mine and people that I'd called DM from the books community on
00:01:27.880
Instagram called bookstagram those that saw the promise and potential
00:01:33.079
of what I was working on would politely ask me if they could tell a friend or two about it I'd say sure and every
00:01:40.399
other day or so one or two new accounts would be created knowing that Book Lovers saw the
00:01:46.399
new year as a chance to set new reading goals I decided to make an event out of the start of 2020 classing January first
00:01:54.439
as the relaunch of our beta which had already been public for a few months at that point the this gave my Keen earlier
00:02:01.240
supporters and followers a little bit more of a push to tell their reading buddies about story graph meaning that
00:02:06.920
we had a tiny bit of extra buzz and we ended the day on 160 user signups and
00:02:12.800
100 new unique visitors each spending an average of 6.5 minutes on the
00:02:18.680
website I was really happy throughout 2019 I've been heads down trying to build something that was
00:02:25.720
worthy of sending to people when they asked for book recommendations online or if an alternative to Goodreads the
00:02:31.920
world's largest book tracking app existed while I didn't set out to build
00:02:37.120
a Goodreads alternative directly I knew that what I was building had the potential to be a better fit for some we
00:02:43.720
did after all offer a way to import all of your data from Goodreads into the
00:02:48.840
story graph I had so far to go heading into 2020 though and off the back of
00:02:55.440
this new Milestone I felt energized to keep going I'd always been afraid to mention what I
00:03:02.159
was working on publicly back then especially when people wanted to know what book Discovery apps were out
00:03:08.360
there I'd be continually sent articles like this one but I made the decision
00:03:13.959
not to engage with the authors or the commenters the product just felt so bare
00:03:19.319
so basic and not very pretty and while by May 2020 I was no
00:03:25.879
longer a solo founder I had spent most of the product's lifetime working on learn I was still the product Soul
00:03:31.879
developer and I felt rather vulnerable but having kept my finger on
00:03:37.280
the pulse of social media book communities for the last year and seeing more and more people each day threatened
00:03:43.720
to start building something new if nobody else did and with the momentum of the 100 user Milestone pushing me on I
00:03:50.879
felt it was time to start spreading the word and so on May 27th I did just that
00:03:57.680
starting by replying or dming nearly every one of the hundred or so people who had replied positively to Tatiana's
00:04:05.200
tweet most didn't reply but a handful did some didn't like it or did what I
00:04:10.840
feared they would do compare it side by side with good reads and that wasn't a contest story graph was going to win not
00:04:18.079
yet anyway but some people understood the project they saw the potential they got
00:04:24.560
excited and quizzed me about what I was up to and most importantly told one or two two of their reading buddies about
00:04:32.400
it the 11th of June 2020 was a really good day I remember I was
00:04:38.960
ecstatic just two weeks after I started talking about story graph more and encouraging people who' been following
00:04:45.199
along from the beginning to do the same our user numbers had more than doubled and we reached 1,000 users 1,000 signups
00:04:55.800
the way I threw a celebration on Instagram stories we had strobe liting party music Flames the whole
00:05:04.080
Stang one week later it's the 16th of June 20120 I just had a productive
00:05:09.880
morning coding and I decided to take a quick putter break and I noticed that I
00:05:15.199
have more notifications than usual turns out my friend Emma Barnes
00:05:20.560
who ran Publishing Company consonant books and had a few th000 followers had recently tweeted this everyone in
00:05:27.960
publishing should stumble upon the story gra now the best bit of innovation to hit the industry in years don't stand
00:05:34.360
for crappy software from massive Tech Giants how lovely of her we had a little bit of extra
00:05:40.840
activity but not too much and I left Twitter shortly after but then I went back to see if the Tweet had even more
00:05:47.160
attention because activity had started to pick up some more the first indicator
00:05:52.639
that something was up was the number of unread emails in my inbox you see every time somebody kicked
00:05:59.479
off offer good Read's import a story graph they got an email letting them know that their import had begun and I
00:06:05.440
was CCD into this email normally I'd see Max four of these at any given time but now I just
00:06:12.880
received eight turns out Sam missingham had quote tweeted Emma's tweet with this Sam is an
00:06:20.800
incredibly well-connected woman in publishing and had 44,000 followers as you can see this tweet was even more
00:06:27.720
popular than the original eventually I left Twitter again just to monitor all of the Imports and see that
00:06:33.800
they were going through okay but then the number of unread emails which had been coming in at a quick but steady
00:06:40.720
Pace started to accelerate what was going on back to Twitter it
00:06:47.120
was okay now Sam's tweet had been quote tweeted book Twitter can we please
00:06:52.680
collectively start using this instead of Goodreads I've been using it for 5 minutes and it's already so much better plus it was founded by a black woman and
00:06:59.240
it's not run by Amazon now this user only had about 200 followers but the Tweet was really
00:07:05.680
resonating as it touched on a few key points first it appealed to already
00:07:11.240
thriving Community book Twitter and it called out the main app in this space that people were
00:07:16.800
Desperately Seeking an alternative for at this point the murder of George
00:07:22.080
Floyd had occurred only a few weeks before and while the black community was still grieving the energy around the
00:07:27.960
Resurgence of the black lives matter movement was at that moment focused around uplifting black creators so
00:07:34.280
calling out my identity as a black woman would have fed into that and finally the mention of Amazon we're in the midst of
00:07:41.599
the pandemic Not only was anti- Amazon sentiment heightened during this time the publishing industry was already sick
00:07:48.319
of them having a monopoly across various suedes of it so yeah this tweet was
00:07:53.759
doing well and we went from having tens to hundreds to thousands of people signing up and now we had a problem
00:08:01.520
remember this email that everybody received well look at that first sentence your goodread import is
00:08:07.960
underway this was only really true for a small handful of imports at any given
00:08:13.039
time now thousands of people had just been told a big fat lie the Imports were
00:08:19.039
not in fact underway and the tweets started to roll in
00:08:34.719
at the rate these Imports were running these people wouldn't have theirs for months and all of a sudden everything
00:08:40.640
was very overwhelming I didn't sleep that night I couldn't between juggling
00:08:46.560
responding to people on Twitter dealing with Goodreads Imports that were failing and trying to figure out how to rewrite
00:08:52.760
the app so that the Imports would be done in days and not months there was no time to rest or relax and then it's June
00:09:01.560
17th 2020 and we're still trying to figure out how to get on top of the thousands
00:09:06.720
of people waiting for their Goodreads import when please get story graph I've had it
00:09:12.120
for one day and I'm still losing my mind over how good it is this was another Super popular
00:09:18.279
tweet probably because it was accompanied with a four- slide presentation titled why you should use
00:09:26.000
sto they also later added this fifth slide so our user numbers were growing by
00:09:32.440
hundreds to a thousand every hour and by the end of the day our sidekick que
00:09:37.640
looks like this not only did nobody have their Goodreads import done nobody had any of
00:09:45.360
our wonderful personalized book recommendations which were also generated by a background job the
00:09:51.440
website was at a standstill and the tweets kept rolling in where's my Goodreads import story
00:09:58.320
graph where are my recommendations story graph I was overwhelmed I was stressed I
00:10:06.000
couldn't handle this I didn't know what to do how did this happen just last week I
00:10:13.200
was so delighted at having reached th000 user Milestone and now we were approaching 10,000 and I didn't want it
00:10:20.360
I didn't want it at all I never even wanted a b2c business it's not what
00:10:25.800
you're supposed to do why did I think that I could build an indie bootstrap b2c business as a solo
00:10:33.160
Dev it felt like this was the end I remember leaving my desk and going
00:10:39.160
to sit in my bathroom I sat in the dark on top of the closed toilet seat and I held back tears
00:10:46.240
I wouldn't allow myself to say out loud I can't do this but I was real close how
00:10:52.040
did I end up here let's go back let's go back to
00:10:57.360
before I had been very AC mic growing up and ended up securing a place at the University of Oxford studying philosophy
00:11:04.160
politics and economics I was heading down the investment banking track something that
00:11:09.240
had been encouraged by my parents we didn't grow up with money and Investment Banking fit into their plans for me
00:11:15.440
having a financially secure future but after becoming disillusioned with that path I ended up turning down
00:11:22.000
my graduate banking job and after winning a competition for a free place I ended up learning how to code at the
00:11:28.200
makers Academy soft Ware boot camp in London originally I went there just to build up some rough coding skills in
00:11:34.800
order to be able to communicate with any developers I ended up working with I definitely had a stereotype of a
00:11:40.839
developer in my head and Not only was that not me it wasn't for me but I
00:11:46.240
quickly realized the value of being able to code and so I put my head down and got stuck in after graduating I secured
00:11:53.959
a job at pivotal labs and I spent a year and a half there mainly working on their platform as a service service Cloud
00:11:59.800
Foundry before leaving with a colleague Theo chushan to start a company called Ignition Works a hybrid consultancy and
00:12:06.839
product company around this time I started to get interested in the fire movement
00:12:12.560
Financial Independence retire early I saw it as a way to make sure that I'd always be financially free to invest in
00:12:19.120
myself and any entrepreneurial Ventures that I may embark on I figured out how much I was spending each month in order
00:12:25.800
to live a comfortable lifestyle and funneled the rest away into index funds
00:12:30.839
I took those principles to ignition work where Theo and I only paid ourselves what we needed to break even as
00:12:36.360
individuals saving up the rest to later invest in any product Ventures ultimately that partnership and
00:12:43.040
our product goals didn't pan out how I'd hoped so I made the tough decision to leave without a clear Next Step since I
00:12:49.120
eared half of the company I took half of the money that we've been saving up leaving me with 5 years of
00:12:55.560
Runway I wasn't sure what to do next when my friends were on your bar got in touch so I spent a year working with her
00:13:02.160
on code newbie a community of people learning to code the goal was to transition it into a product company but
00:13:09.399
that also didn't work out and so I found myself at my desk alone on the 3D of
00:13:15.279
January 2019 I had four years of Runway left that would see me through until the end
00:13:21.600
of 2020 and I'm not sure what to do I don't have any big ideas that are grabbing me so I think why don't I spend
00:13:28.160
some time on my two two main side projects that I've been rulling over for years but never have time to work on one
00:13:34.800
was run rout an app that autogenerated running routs for you the second was
00:13:40.000
read lists an app that enabled you to create and share custom reading lists and track your progress through them on
00:13:46.120
a pretty dashboard the plan was to spend January working on both of them and see if
00:13:51.720
either of them went anywhere I decided to take a look at read lists first I was
00:13:56.920
much more excited about books than running but what to build it in and now we get
00:14:02.199
to the first of three pillars to my process that have served me well especially a key decision points and I
00:14:08.600
think they are Universal to any SAS business especially BR J ones spoiler alert I think the title slide probably
00:14:15.920
gave it away but despite where we left me in the dark bathroom holding back tears story graph is still around today
00:14:23.600
we're profitable and serving millions of users and millions of requests and the biggest question people have have is how
00:14:30.120
did you do it so in putting together this talk I wanted to come up with the most helpful and actionable
00:14:36.800
answer reflecting back I could categorize everything that happened into things that were in my control and
00:14:43.920
things that weren't the things that aren't in your control when running a business are often the things that will
00:14:49.680
either lead to your highest highs or your lowest lows think your viral tweets that take you to a new level of
00:14:55.399
popularity or the entrance of a new competitor that eats into your Market market share these things aren't in your
00:15:01.959
control there's luck involved and luck isn't always good you can have bad luck
00:15:07.839
too but the things that are in your control ultimately how you approach building your company and your product
00:15:14.560
are the things that will determine how you respond to the good luck and the bad they'll determine how resilient you are
00:15:21.000
to setbacks and how much you can capitalize on opportunity so while there are so many factors the three key
00:15:27.839
pillars to my approach to build story graph have set us up to be resilient and take advantage of turns of good luck the
00:15:34.480
first keep the tech simple what do I mean by simple I mean stick to what you
00:15:40.639
know and aim to use as little of what you know as possible to get the job done lean into the most stable mature boring
00:15:48.720
platforms and tools so for me deciding what to build my read lless side project in the answer was obvious rails it was
00:15:57.759
what I'd studied at boot camp it was what I knew I could get moving fast after all this was a small side project
00:16:04.519
with rails I'd have a working demo in no time and if we head back or should I say JUMP forwards to me sitting in my dark
00:16:10.880
bathroom for one moment part of what gave me the strength to pick myself up and get back out there was knowing that
00:16:17.720
all of the issues I was currently facing had to be solved problems companies had scaled with rails before because they
00:16:24.079
had been forced to and I also knew that there was a large experienced friendly community of people out there that I
00:16:30.360
could seek help from so back to 3rd of January 2019 I kept the Tex simple went
00:16:36.880
for the boring answer not worrying about any growth or scaling pain points I didn't have yet and I got going fast and
00:16:44.279
I had so much fun it was the most happy and fulfilled that I'd ever felt while ping on anything and it made me wonder
00:16:51.160
if this is what people were talking about when they spoke about founder product fit I'd always been a keen
00:16:56.680
reader and I found the prospect of work on something that other readers would find valuable so exciting I realized
00:17:03.880
during that first week in January that books is where I wanted to be and if I wanted to build something successful in
00:17:10.039
the space I needed to call upon what would become the second pillar keep
00:17:15.360
talking to customers we all know there's nothing worse than building something that nobody wants we also all know that
00:17:22.559
we should talk to customers but do we all know how to do it properly what does
00:17:29.039
to customers properly look like it means going in with a key research question with a hypothesis it means going in with
00:17:36.600
an open mind with no set answers in mind and no leading questions planned that
00:17:41.799
means going in with a script the emphasis is on Discovery not confirmation bias so it was a bad idea
00:17:49.799
that for the first round of customer interviews I did I included a demo of the app that I've been working on for
00:17:55.640
the last couple of weeks and I said what do you think would did you use this my learnings from Rob Fitzpatrick's
00:18:02.760
the mum test revealed pretty quickly that people weren't too Keen when they said oh yeah that does seem cool yeah
00:18:10.120
yeah I'd use it for sure they were just being nice so I knew what I had to do
00:18:16.120
keep talking to customers but this time without a demo without questions that
00:18:21.320
enable people to just be polite and tell you what you'd like to hear without the questions that make people cutle onto
00:18:27.400
your idea or even susp ECT that you have an idea instead I asked more open-ended
00:18:32.720
questions I learned more about my interview's reading habits and pain points with any current tools that they
00:18:38.120
had I'd watched each batch of five or so interviews back I summarized each onto
00:18:43.480
sticky notes and I grouped them into themes on a virtual whiteboard the learnings from each round helped me to
00:18:49.360
figure out the hypothesis for the next round and I kept talking to customers repeating the cycle until something
00:18:55.840
useful to build became clear I was prepared to walk away if nothing did but 3 months of talking to customers
00:19:03.720
later something useful to build did become clear I had enough information to start building an alpha product from my
00:19:11.600
customer research the main paino in the book space was having one place for consistently high quality
00:19:18.080
recommendations and so the alpha was purely a personal recommendation service it was very important that I kept the
00:19:24.679
tech simple especially at such an early stage of the product's life just just one round of customer interviews could
00:19:30.840
completely change what I was building so knowing that I'd only be on boarding small handfuls of people onto the app at
00:19:37.520
any given time I tried to keep as much of the behind the scenes work as manual as possible when the alpha users filled
00:19:44.760
out a form in order to get a personalized recommendation all that happened was that I got an email went
00:19:50.440
off and did a bunch of research before adding a new recommendation into the system via the back end then I sent the
00:19:56.400
user an email letting them know their recommendation was ready the rails app itself Hardly did anything but the users
00:20:03.280
didn't know that and while running this Alpha I kept talking to customers I had
00:20:08.480
two rounds of onboarding people were onboarded in groups of five they used the app for a week and then I invited
00:20:14.159
them to do a customer interview I didn't ask them whether they were enjoying the alpha or not doing that would have led
00:20:20.679
me back into the Trap of I really like it honestly I I definitely pay you $5 a
00:20:25.720
month to use it once it's ready instead I asked them questions about how they were using it why had they filled out
00:20:32.440
the form for a recommendation twice in quick succession why hadn't they logged on how was their reading going otherwise
00:20:40.320
I used my learnings from the interviews to build a handful of extra features and I did this for a couple of months until
00:20:46.799
June 2nd 2019 because I was continually talking to customers I knew when the alpha had
00:20:52.880
exhausted its purpose when the technical limitations of such a basic product started to Clash with the needs of my
00:20:59.480
small handful of users and it was time to move on I resolved to spend the next few months building a more fully fleshed
00:21:05.880
out beta product the spec for which was easy to draw up because I had such a clear understanding of my users means
00:21:12.600
and pain points from my research I was worried about losing momentum with all the people I'd been
00:21:17.840
talking to so I started a Weekly Newsletter the maining list started with 100 or so people that I'd interviewed or
00:21:24.400
spoken to about my project up until that time and I built head down for a couple of months until July 30th 2019 I started
00:21:33.760
what I called the concierge beta Cony urg because a lot of the product was still manual why spend time building a
00:21:40.840
good weeds importer if it wasn't clear that anybody would want to import their good weeds data into my app for now
00:21:47.120
manually onboarding people would be wiser I sent out a signup form to my newsletter wisely asking how many books
00:21:54.559
the prospective beter user had in their Goodreads Library I knew just by looking at the responses that some of these
00:22:00.559
people would never be able to join my Beta until I had an automated import still I spent hours and hours manually
00:22:07.440
adding people's books to the app around this time I was in Puna India teting DEC and Ruby comp but I spent most of the
00:22:14.400
trip in my hotel room manually onboarding people to the Beta app and then I did the same thing that I did
00:22:19.919
with the alpha onboard people in small batches let them use the app for a week invite them to a customer interview I
00:22:27.080
kept doing this until September 2nd 2019 even though it was still very basic
00:22:33.039
I realized that the product was developed enough such that anybody could get value from it in particular from the
00:22:38.440
long filterable list of books on the homepage and so despite being incredibly nervous to do so I made the beta public
00:22:47.039
I shared the link and encouraged my newsletter subscribers to do the same and the feedback started rolling in most
00:22:53.880
of it positive some critical and a lot of it helpful in figuring out where to go next
00:22:59.400
it got to a point where I had so many manual requests for books to be added to the site that I had to hire a woman who
00:23:04.559
I met from the books community on Instagram Abby to help me parttime while I had a small group of
00:23:10.559
paying beta testers at this point I was essentially paying her out of pocket feeling comfortable doing so given I was
00:23:16.799
only in the first year of a possible five of my Runway fast forward a couple months
00:23:21.840
after that and W Freo someone's husband got in touch heing me pop up on Twitter
00:23:27.400
and from a recent tweet of found a link to the archive page of my newsletter he sat down and read every
00:23:33.279
single issue of the 21 I'd published up until that point from the beginning until the most recent not only did he
00:23:40.200
enjoy the story I was telling as a reader himself who'd been studying machine learning on the side he saw an
00:23:45.799
exciting opportunity to help me out he started helping me here and there in a spare time but fell in love with this
00:23:52.480
new side project and working with me of course and could so keenly see its potential he wanted to help accelerate
00:23:59.400
us on our upwards or beit slow goinging trajectory but knew that would only be possible if he could dedicate more time
00:24:05.559
to it he felt that his only option was to quit his senior well-paid job in
00:24:10.799
Enterprise level product support to join me full-time I almost discouraged him at
00:24:15.960
first it felt like a lot of pressure Rob who himself was striving towards Financial Independence was going to give
00:24:22.159
up his stable job and six figure salary to come and work for at least initially nothing but I also went with what my gut
00:24:29.640
was telling me that this could prove to be a magical partnership Rob quickly brought machine
00:24:34.919
learning capabilities to the app soaking up a lot of the manual work that Abby and I had been doing and from then on we
00:24:41.399
were just heads down repeating the cycle of keeping the text simple to build the next thing and continuing to talk to
00:24:48.200
customers to get their feedback then we build the next thing as simply as we could talk to customers again and we did
00:24:54.240
this for 9 months until we get back to where we left off in the intro
00:24:59.760
okay it's competition time so far you've seen two of the three pillars keep the
00:25:06.600
text simple and keep talking to customers what is the third one going to
00:25:12.840
be one person who guesses correctly is going to get a prize at the end of this talk just kidding there's no
00:25:20.600
prize but just in case I didn't I now definitely have the attention of everyone in the room
00:25:26.159
right okay so we're back to June 7 17 back into my dark bathroom ultimately
00:25:32.520
giving up wasn't an option I had to pull myself together and get on with it having kept the tech simple and
00:25:37.799
straightforward sticking with tools and a community that I was very familiar with I knew that I must be dealing with
00:25:43.600
solved problems I wouldn't be the first to build a rails app that supported thousands of users and as you now know I
00:25:50.600
did have Rob and he was an amazing encouraging supportive business partner but when I emerged from that
00:25:57.000
bathroom I didn't know that I was about to embark on 2 weeks of what I now call the dark days first we had to
00:26:03.720
rearchitecturing
00:26:10.559
recommendations for one person didn't take several minutes then we had to work through a
00:26:16.000
whole range of growth skaing issues that neither of us had dealt with before database iops
00:26:21.960
anybody we hardly slept but we had each other and we kept up the positivity and optimism as best as we could
00:26:29.159
and after chipping away at all of the resource bottl Nets mainly through a combination of rewriting code and
00:26:35.159
throwing money at the problem as they say by doing things like upgrading our Heroku dinos and
00:26:40.679
database we were back in business it took 2 weeks but we made it and from
00:26:46.080
that point we continued to grow by at least hundreds of users each day all via Word of Mouth whenever we weren't sure
00:26:52.679
what to do we kept talking to customers and because of the growth of our Instagram and Twitter audiences after
00:26:58.720
the popular tweets we had new avenues open to us like polls we take the learnings from that to
00:27:05.320
improve on the beta keeping the tech as simple as possible being ruthless with not solving for pain points we or our
00:27:12.399
users didn't yet have we continued to
00:27:17.640
grow and as we did our cost kept on Rising what were we spending money on we
00:27:23.520
had a standard SAS company subscriptions think cloud Fair send grid mailchip
00:27:29.000
naturally paying Abby was a big expense but our biggest cost was Heroku good old
00:27:36.159
Heroku we wanted to stay independent and we still hadn't figured out product Market fit and so we come to the third
00:27:42.240
pillar keep costs low this is not a set it and forget it until you need to
00:27:47.760
upgrade kind of thing this was is a continued exercise for Rob and I
00:27:53.120
especially Rob who really takes the lead on this front at least once a month we review the list of tools we were paying
00:27:59.360
for experimented with the lowest tiers of various Heroku add-ons and switched to open source Alternatives where
00:28:05.640
possible all without sacrificing the quality of the product it helped that we had a wide variety of skills between us
00:28:12.519
we did as much as we could instead of hiring people and we put in the time to level up where we needed to it also
00:28:18.799
helped that we were both financially secure Rob had been following the principles of fire long before I had
00:28:24.080
been so was well ahead in his financial Independence Journey we both had years of Runway and so we didn't need to worry
00:28:30.200
about paying ourselves just yet while we've been doing the best we could there's only so far you can go
00:28:36.440
with keeping costs low especially when you're getting hundreds of new signups every day at some point you can't get
00:28:43.000
costs any lower without sacrificing the quality of your product at some point even discussing how much further you can
00:28:49.399
get the costs down gets ridiculous at some point you have to make money in
00:28:54.880
order to become a sustainable business back in Jan January of 2019 when I
00:28:59.960
realized that I wanted to make this side project a full-time business I dreamt up business models that involved making
00:29:05.840
money from Publishers without compromising the privacy and data of our users after all good reads didn't charge
00:29:12.679
its users anything so surely me doing so was out of the question on top of that
00:29:18.679
most conventional Indie bootstrap wisdom said that you had to go for building a B2B business I'd already fallen into the
00:29:25.519
Trap of building a consumer product by having the business model while I Publishers though I'd at least improve
00:29:31.720
on the making money path however after discussing my ideas with a friend and Mentor tamas Sal his response was the
00:29:39.600
best businesses are where you can make money directly from your customers with no middle entity involved given that I
00:29:46.039
wanted story graph to fall within the category of the best businesses I had to find a way that I could provide enough
00:29:52.159
value to our users such that they'd want to pay us so back in 2020 with Rising
00:29:58.080
costs and no income we started to think about how we could move towards a premium model this was our chance to
00:30:04.640
combine all three pillars keep cost slow we couldn't build something we weren't
00:30:10.159
going to need there was no way we were going to use up resources building a paid plan until we had proper validation
00:30:17.559
in the form of pre-orders keep the tech simple what was the quickest way that we could get to
00:30:23.559
pre-orders a single web page on the app with a pre-order button powered by the
00:30:28.600
simplest quickest stripe checkout integration no concept of subscriptions only one currency USD CU Americans
00:30:36.039
formed 60% of our user base and a user marked as an early bird in the back end after purchase we figure out the rest
00:30:43.880
later keep talking to customers because we've been regularly conducting user interviews and Reading and Responding to
00:30:50.760
all feedbacks sent our way via email and our social media channels although we didn't quite have product Market fit yet
00:30:57.320
we knew what our most popular features were and made up some potential enhancements to those and so the first
00:31:03.880
version of the page went live on October 5th 2020 when creating a story graph account
00:31:09.840
users had an option to check a box labeled keep me informed of exciting product updates and thousands of people
00:31:16.159
had opted into this so we put together a newsletter for this group of people and waited to see what would
00:31:22.320
happen eventually the orders started to come in it was very exciting but also a
00:31:27.399
little bit nervous wracking and keeping in with the vein of talking to customers I manually emailed a random selection of
00:31:34.279
the people who pre-ordered to figure out what had made them do so and I used their responses to iterate on the page
00:31:40.240
in order to improve conversion which had started out at a healthy 5% and good e-commerce rates are typically 2 and 1
00:31:46.679
half to 3% there was a clear pattern coming out of this research I didn't
00:31:52.360
really pay attention to what features were on offer I just really want to support an independent alternative to
00:31:57.480
good read I'd always been wary of Leaning into this worrying that we couldn't build a
00:32:02.840
proper business this way as if it seemed like we were a charity surviving off of support instead of people needing to pay
00:32:09.240
us in exchange for Value I do now see that there is inherent value in existing
00:32:14.279
as an indie alternative to a popular product but that was the moment when we decided to fully Embrace that piece of
00:32:21.000
learning from our research after all users May subscribe for that reason but
00:32:26.279
the goal would be to make the product so good that they were renewed because of product Market fit we took hundreds of
00:32:33.159
pre-orders in the first few weeks of the page being live we got the conversion up to 6.6% and for us that was more than
00:32:40.919
enough validation to build out the platform oh this whole time we were still in beta so while taking pre-orders
00:32:49.080
we were focusing on getting the product to an official launch including a whole app redesign we planned this launch for
00:32:55.960
the 1st of January 2021 one again taking opportunity of the New Year energy and
00:33:01.600
enthusiasm amongst Avid readers really because of the way that we've been iteratively building the product coming
00:33:08.519
out of beta just meant switching over the domain name and I was worried that the day would ultimately be
00:33:14.880
anti-climatic especially for our most active of users but we still pressed on making an event out of it I did posts on
00:33:22.240
Instagram and Twitter asking people to comment if they wanted to be part of the buzz on launch day and when January 1st
00:33:29.200
came I personally DMD the dozens of people who had replied encouraged them to share the news on their
00:33:36.240
platforms making an event of it was a success because on January 1st 2021 we
00:33:41.760
surpassed 100,000 users on that day we turned off our $30 early bird pricing
00:33:47.880
for plus we had to check that people would actually pay $50 and also give all
00:33:53.080
the current early birds a little bit of a benefit for having been quick with their pre-orders so then it was time to
00:33:59.159
focus on building out the plus plan that over 1,000 people had pre-ordered some as Christmas gifts we did warn
00:34:06.720
them and plus did eventually launch on 28th of February or 1st of March
00:34:11.919
depending on where you live you see I had started to feel bad that we' taken tens of thousands of pounds of
00:34:17.879
pre-orders but all we could tell people was that plus was coming early 2021 that could technically mean up to
00:34:24.800
April or even May right so I I decided to back myself and Rob and declare that
00:34:30.440
plus would launch in February and well in the last week of February after a handful of orits plus
00:34:38.320
launched and while it wasn't quite February for me in the UK any longer it was February in the US where the vast
00:34:45.720
majority of our customers lived and so that's all that matters in the end we had 1,400
00:34:51.679
pre-orders making just under $50,000 of course that money didn't really feel like ours until until the
00:34:58.000
plus plan had gone live so now we get to the 4th of May because we were always talking to
00:35:04.760
customers and because we had tens of thousands of followers on social media we were always aware of our latest
00:35:10.800
biggest pain point at the beginning of may we could ignore our current one no longer it was starting to impact the
00:35:17.760
number of signups our lack of mobile app we had a progressive web app but no
00:35:24.480
matter how much we while mainly Rob tried to convince people it wasn't
00:35:29.839
downloaded from the app or Play Store so as far as people were concerned it was nothing more than a website bookmark so
00:35:36.440
what could we do we had to stick to the pillars of our process keep cost low we
00:35:41.960
couldn't afford an iOS or Android developer so the job was going to fall to me keep the tech simple what was the
00:35:49.520
simplest way that me a web developer with minimal Swift and zero Poland experience was going to build a mobile
00:35:56.640
app in a timely manner manner well one advantage of me leaning into the mature
00:36:01.880
large rails ecosystem meant that other people in the community had likely often run into this very problem and so tools
00:36:08.760
would have been developed to solve it enter hot wire and turbo tools changing
00:36:14.040
the way HTML is written and allowing developers to reduce Reliance on JavaScript without sacrificing any of
00:36:20.400
the performance associated with traditional single page acts and with the accompanying mobile adapters they
00:36:27.000
gave us a path towards developing semi-native apps in a reasonable amount of time with all of the dev being kept
00:36:33.079
in house so I started up two new Reapers and I got coding for about 6 weeks
00:36:39.040
mixing Ruby with Swift and cotlin I remember feeling rather concerned that due to our small team size including me
00:36:46.400
being the only web and now app developer I was working on nothing else for such a
00:36:51.560
long time I was worried that we'd lose the momentum that we've been building on top of ever since our spikes of June
00:36:59.160
2020 turns out that being publicly consistent and transparent for so long
00:37:04.400
meant that we built up a lot of trust amongst our user base if we weren't as active as we typically were on social
00:37:10.319
media the Assumption was they must be hard at work on the next awesome future
00:37:15.920
and eventually 6 weeks after the mobile app repos were created we submitted them to the stores and got them
00:37:23.280
approved as I said opting for boring mature stable tools means that you've
00:37:28.520
likely got a large experienced community of people on hand some of whom are real gems I'm talking about amazing people
00:37:35.960
like Joe melotti who patiently answers DMS from strangers who are at a bit of a dead end in such a friendly and detailed
00:37:43.079
way thank you so very much Joe you are awesome having the apps out and shouting
00:37:49.640
about their launch definitely gave us an extra push in signups leading us to hitting the quarter of a million
00:37:55.240
Milestone on July 8th 2021 20 days later I'm fast asleep and my
00:38:01.560
phone rings it's Rob there are thousands of people on the app right now and it keeps crashing uhoh
00:38:09.800
out of bed I get turns out we'd gone viral on Tik to Jill's baby someone who
00:38:15.960
we had never heard of before had made a 44 second video with her face super imposed on the app highlighting what
00:38:22.920
made it so great perhaps most memorable was the video's opening line
00:38:28.520
all the hot girls are switching from good reads to story graph and here's
00:38:34.119
why this was another allnighter we never had this many concurrent users before
00:38:39.480
1.6 th000 and something was breaking somewhere we tried so many things until
00:38:45.280
I realized that some code from the launch redesign was running every single time the homepage was loaded Not only
00:38:53.200
was the query that was being run incredibly inefficient it was result was not being used anywhere on the page yeah
00:39:02.160
anyway so this was eventually fixed and the video grew to 1.7 million plays and
00:39:07.960
over 300,000 shares at the end of it all we were greeted with a nice surprise on
00:39:13.599
the US App Store book charts we grew by 40,000 users that day
00:39:20.000
and we kept growing until September 23rd 2021 the day before my birthday where we
00:39:26.240
hit half a million sign as we headed towards the end of 2021 we
00:39:31.280
started to see an influx of people that same January 1st excitement rearing its head and as our user base grows our
00:39:39.119
costs are Rising by the thousands how come
00:39:44.160
Heroku Heroku costs were killing us we weren't profitable yet and as our user
00:39:49.440
base continued to grow our Heroku cost grew in lck Step continually upgrading
00:39:54.599
and looking ahead at the next tier or two up W and I became concerned that our heroic costs would always outpace our
00:40:01.760
earnings from our plus subscribers we would never be profitable we'd never build a sustainable Independent Business
00:40:08.319
this way but you got to keep cost low but how do you get rid of Heroku costs Heroku is
00:40:15.599
the standard easy you don't need to hire a devops person platform but we had to
00:40:20.680
do something Rob has 15 years of operational experience from his prior
00:40:25.720
career and after months of discussion about this and what various worlds looked like for story graph we decided
00:40:32.680
to take advantage of that and move towards having him manage our infrastructure he started painstakingly
00:40:39.160
detailed Research into our options and well January 22nd 2022 marked the great
00:40:47.079
migration of foku to Cloud 66 I was so nervous to do this
00:40:54.400
especially as our only web developer with hardly any infrastructure management experience leaving the safe
00:41:00.040
space of Heroku was scary Rob was amazing at addressing all of my concerns
00:41:05.599
we spent weeks putting together a step-by-step document for the actual migration the morning of the migration
00:41:11.960
was 6 hours of non-stop work babysitting the process until it was all done apart
00:41:17.960
from a couple of small hiccups relating to having a working maintenance mode and a database backup command that initially
00:41:24.040
timed out everything went smoothly when it was over Rob and I sat back in
00:41:29.800
our seats feeling immensely proud of ourselves we'd done it we'd actually
00:41:34.960
moved off of Heroku with an app that served hundreds of thousands of users and had tens of millions of database
00:41:41.560
rones in the process we'd cut our server cost by 80% Rob who often ran our support ticket
00:41:48.880
desk on the weekends decided to check in and make sure everything was okay account missing where has my account
00:41:56.160
gone deleted account oh my gosh our hearts sunk how
00:42:04.400
could this happen I took deep breaths and tried to stay as calm as possible this couldn't be
00:42:11.280
happening turns out the migration had logged every single one of our 760,000
00:42:17.160
users out of the app and while when you haven't had to log into something for in some cases years and you have multiple
00:42:23.960
email addresses or maybe originally you had a typo your email address you will likely struggle to log back in we
00:42:31.160
eventually managed to match up every single confused customer back to their account for
00:42:36.800
you and we continue to grow until on June 26th of this year we hit 1 million
00:42:52.200
users thank you where are we today we have 1.2 million in registered accounts
00:42:59.160
we focus on monthly active users since the average person reads a book a month and so 25 to 33% of the registered
00:43:06.280
accounts are active at any given time we have 3 million unique monthly
00:43:12.440
visitors and 36 billion page views a month each month we serve 110 million
00:43:19.119
requests all from that same repo that I started back in June of 2019 we're profitable
00:43:27.240
in March of this year our early birds had to take out an official subscription if they wanted to continue using the
00:43:32.720
plus features and 62% of them did I remember feeling very pleased with
00:43:38.920
myself because of the little Easter egg that I put into the renewal code all of the early birds were sent I knew it was
00:43:45.680
obscure but I hoped that at least one person would catch it the closest I got
00:43:50.839
was this from a developer friend remarking on how long the code was and spotting the egg emoji but then saying
00:43:57.800
nothing more on the matter we have
00:44:05.160
53,000 plus subscribers in total including those that have taken out subscriptions since the plan officially
00:44:11.200
launched on February 28th of last year only 3% of our registered users
00:44:17.319
have given our 30-day free trial AG go and we're looking into ways to increase that proportion we don't take payment
00:44:23.880
details for the trial so there's no chance of users ACD entally subscribing because they forgot to cancel given that
00:44:30.800
we're incredibly pleased with our 18% conversion rate from trial to paying user we know that every single
00:44:36.920
subscriber has made a conscious choice to pay us and that's a fantastic position to beat in as an indie
00:44:42.680
bootstrap business our monthly churn rate is just under 2% with a good rate typically
00:44:48.599
falling between 3 and 8% and our monthly costs are now consistently lower than our monthly
00:44:54.599
recurring revenue from plus and we we've done all of this with a three-person
00:45:00.440
team two of us full-time and a onew woman
00:45:06.800
Dev how have we done this and how can you set yourself up with the best chance of doing it too keep the tech simple by
00:45:14.760
sticking with what you know aiming to use as little of what you know and leaning into the mature stable boring
00:45:21.839
Technologies you set yourself up to be able to move and change direction fast
00:45:27.040
you avoid building things you aren't going to need and you can rely on a wealth of knowledge already out there on
00:45:32.480
the internet and tap into a large experienced and hopefully friendly Community for all of these reasons
00:45:39.559
having rails being part of your toolkit is such a wonderful advantageous thing and remember if you're itching for a
00:45:46.160
tech problem something more exciting to sink your teeth into while you build out your product any growth or success that
00:45:52.960
you have necessitates that you'll have to get creative at some point keep talking to customers ultimately
00:46:00.160
this is the most key you can keep the tech simple all you like but if you're building something that nobody wants
00:46:06.440
you're going nowhere so invest in learning how to talk to customers properly there's no one right way to do
00:46:13.079
it but there are definitely wrong ways read the books and blog posts out there and figure out a range of styles that
00:46:19.920
work for you and your team critically assess how well you're doing each time and iterate on your own research
00:46:26.480
techniques there's a reason some people's jobs are solely focused on customer research it's
00:46:32.200
a skill in and of itself and you can't take shortcuts with it and keep costs
00:46:38.040
low this isn't just starting off with the cheapest plans that you can find and only upgrading when absolutely necessary
00:46:45.040
this is having regular review points do you really need this tool do we really need to be on this tier have any
00:46:52.520
alternatives come out since we last looked can we do this inh housee and this is always within reason don't
00:46:59.160
sacrifice the quality and security of your product don't sacrifice your user experience and don't take on too much
00:47:06.319
in-house such that you're distracted from building pre-product Market fit you
00:47:11.359
have to do everything you can to keep cost low it's essential to stay independent and bootstrap but and there
00:47:18.319
are a lot of new Innovative funding options available now seeking investment from a point of profitability with your
00:47:25.119
costs under control is a super powerful position to be in ultimately as you can tell from my story there is luck
00:47:32.000
involved there's good timing think of those early tweets you can do all of these things and still not find success
00:47:39.559
but by consistently following the three pillars and having faith in the process you're setting yourself up to have more
00:47:46.319
chances to try and fail and fail again and again and eventually succeed you're
00:47:52.960
setting yourself up to be resilient to the bad luck and you're setting yourself up to capitalize on opportunities when
00:47:59.280
Good Fortune comes your way I hope that as you go on to build your businesses if you ever find yourself having your own
00:48:05.599
dark bathroom moment you'll think back to this tour you'll think of the three pillars and have faith that you're on
00:48:11.440
the right track you'll be able to get out of that dark bathroom and get back to work thank you so much for