What does it take to scale a successful podcast hosting platform and maintain happiness in a SaaS business? Join us as we unravel this mystery with our special guest, Tom Rossi, co-founder of the popular podcast hosting service, Buzzsprout. Tom gives us the lowdown on the inception and growth trajectory of Buzzsprout since its launch in 2008, shifting gears from client services to product creation, and their commitment to simplicity and a user-friendly experience.

Brace yourselves as we zoom into the world of Ruby on Rails and its pivotal role in product development. Anecdotes of starting out with Rails 1, a transformative Basecamp workshop, and the challenges of developing a podcast hosting platform form the crux of our discussion. As we journey through the evolution of Rails, we shed light on the associated issues, like caching problems, that surfaced with the rise of podcasting.

As we navigate the labyrinth of CDN and storage in web development, we expose the ripple effects of changes to these systems on other services and partners. Our narrative also spotlights the delicate balance between having a clear opinion about your product and making your customers happy. Hear us out as we stress the significance of optimizing happiness - both for founders and the team - and the freedom of decision-making that comes with being privately funded. This is an episode you won't want to miss for an in-depth understanding of the complexities of managing CDN, storage, and the intersection of opinion and happiness in business.

Honeybadger
Honeybadger is an application health monitoring tool built by developers for developers.

BuzzSprout
Podcast Hosting Made Easy.

Disclaimer: This post contains affiliate links. If you make a purchase, I may receive a commission at no extra cost to you.


Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Speaker 1 (00:00):
This is remote.
Have you any remote ideas tothe meaning of the word?

Speaker 2 (00:08):
Day three podcast.
Good morning.

Speaker 1 (00:10):
Hey, andrew, good morning, we're halfway through
Andrew.

Speaker 3 (00:13):
what is it?

Speaker 2 (00:14):
7 o'clock for you in the morning, 7 o'clock in the
morning.
Had we not recorded right now,what time would you have gotten
up?
I was up at 5.
Okay, that's what I thought.
Take a long time to wake upbecause you look like you're
still asleep and you've been upto the mountains Because.

Speaker 3 (00:26):
I didn't get breakfast yet.
I've had the busy week.
It's been one of those weeks.
Okay, in fact, the fact thaty'all scheduled seven podcasts
this week.

Speaker 2 (00:36):
Six.

Speaker 3 (00:36):
It doesn't matter.
Seven on top of a re-fraw.
It was kind of my fault, it wasyour fault, I blame you.

Speaker 2 (00:43):
Like our recording link, you still only have one
slot and I was like, well, thatkind of sucks because, like, we
recorded a lot of people on thewest coast or in Europe, or so I
was like I'll open up some moreslots and then I forgot to trim
them down.
Yeah, they filled up in oneweek.
So here we are.
If we do this successfully, youwon't have to record a podcast
for two months.
See, that makes me sad, but youstill record.

(01:04):
We could just get two monthsahead, but then it'll be like,
hey, rails 8, let's talk aboutthe new features, and then, six
months later, releases.
That is it.

Speaker 3 (01:12):
I won't get to see y'all smiling faces every Friday
.
That's sad.

Speaker 1 (01:16):
That's important, you'll see me.

Speaker 3 (01:18):
I'll have to break something in podium to force
Jason to talk to me every Fridaynow.
Yeah, then you'll see myfrowning face If I turn my
monitor upside down, which?
I can do on the swivel boardlet's dig into it.

Speaker 2 (01:30):
So one of the highlights for me at Rails world
was getting to record a livepodcast with our guests but with
y'all and the company that madethat happen is Buzzsprout, and
there is a fantastic booth.
You can find pictures of itonline, of us recording and
stuff in it.

(01:50):
We got the episode backyesterday with Adam and it
sounds great.
So, yeah, it was a lot of funand it really added to the
conference experience for me.
The person behind Buzzsproutone of the people behind
Buzzsprout is also one of myfavorite humans in the whole
world.
We met Tom last year Andrew andI did at Railsass and I

(02:10):
immediately thought if I couldhave the like positivity and
energy Tom has, like my lifewould be like 60% better.
So I'm really excited today tohave Tom Rossi from Buzzsprout
join us.
So hello, Tom.

Speaker 4 (02:25):
Hello.
Wow, that's high praise, it'strue.

Speaker 3 (02:29):
So we're awesome.
When we met you at the Railsass.
I remember meeting you at theroof and like, this is a cool
human being.

Speaker 4 (02:35):
Thanks.
That was a really cool event.
I loved just being able tospend so much.
I feel like we had a lot oftime to be able to hang out.
That rooftop was pretty neat.

Speaker 3 (02:42):
Yeah, super cool.

Speaker 4 (02:43):
Cool vibes Did I pronounce your last name, right?

Speaker 2 (02:46):
Rossi, rossi.
Yes, I love your hosting names.
Tom, if you don't mind realquick, maybe just giving a quick
kind of intro overview of whoyou are, then we'll dive in Sure
.

Speaker 4 (02:56):
My name is Tom Rossi.
I'm one of the co-founders ofHirePixels.
We are a product company, andwe're most known for our product
, buzzsprout, which is ourpodcast hosting service that we
launched probably in about 2008.
And we dreamed of a day thatmaybe it would be our biggest
product and became that.
Let's do.
I think cereal and Appleputting the podcast app inside

(03:21):
of the phone.
Podcasting has just been huge,and so that's the product that
we really spend most of our timeon.

Speaker 2 (03:27):
That's great.
Yeah, we, as of an hour ago,are recent Buzzsprout converts,
that's great, that's awesome,yeah, loving the platform so far
.
So in the migration was reallyeasy, which, as we were talking
about before, we recorded it waslike something I was nervous
about.
So Chris did the migration, butsort of click a button and then
even this morning, like we hadan episode on our old one, it

(03:48):
was like, hey, do you want tosee if there's any new ones and
just migrate those to you?
I don't know, everything wasreally well thought through.

Speaker 4 (03:53):
So it's great.
That's great Buzzsprout.
We really wanted to be assimple for podcast hosting, make
it as easy as possible forpodcasters to be able to get
into it.
They don't have to have a bigproduction team, they don't have
to be very technical, andthat's really where we started
and continue to be today, eventhough we've launched all kinds
of.
There's so many features nowinside of Buzzsprout, but we've

(04:15):
still really worked hard tomaintain that simplicity.

Speaker 2 (04:19):
We talked about it before we started recording
about Diving in with Rails, butI feel like now is actually
probably a good time to go aheadand get a little history on
Buzzsprout.
So you mentioned Buzzsproutlaunched in 2008,.
But you also mentioned you havea company that builds products.
So what were maybe some of thethings you were doing before
Buzzsprout and were they in Ruby?
How did you get into Ruby?
Things like that.

Speaker 4 (04:38):
Sure, we originally were a client services company,
so people would hire us to buildproduct for them and so we'd
have a team and you'd respond toan RFP, you would write
requirements, documents and youwould go back and forth with
your customer and all that kindof stuff.
And everything that we did backthen was in ASP.
I think we started in regularstraight up ASP and then

(05:00):
eventually got into ASPnet and Igot less and less technical and
spent more and more time on thehamster wheel of sales.
And then that business kind ofblew up in around September 11th
.
Everyone froze their budgets.
Nobody wanted to spend anymoney.
Everything we did was a capitalcost that no one wanted to
incur when the markets were sounsettled.

(05:22):
And so we said, okay, we got todo something and we built our
first product and really it wasjust to keep the team busy.
But that product grew over time.
That product was called M-Siteswas a content management tool.
It was originally built in.
Microsoft continued to grow.
I could not even code it rightLike, oh, I was just a sales guy

(05:43):
at this point.
Some years later it got down tojust me.
The team just dwindled downuntil it was literally just me
and a server running thisproduct.
But the product was growingevery month and I was like, man,
this is such a better businessthan the business we had been in
before.
So a buddy of mine, I wastelling him about how great it
was and he was like, hey, I gotan idea for a product.
So that was our second product,this product called TIC, which

(06:05):
is a time tracking application.
And he said, before we do this,can you just watch this video,
can you just check this videoout?
I know you're a Microsoft guy,but can you watch this video?
And so he sent me the famousDHH how to build a blog video
and it addressed so many of theissues that we experienced when
we were building applicationsbefore.

(06:25):
And it was so much easier.
And I was like, look, if I'mgoing to have to learn coding, I
would much rather learn and goback and learn Rails thanNET.
Of course, I was still on aMicrosoft computer and had all
those complexities, if anybody'sever tried to do that.
So then we built that firstproduct, tic, using Ruby on
Rails.
I mean it changed our lives,literally like it changed our
lives, because now we were able.

(06:45):
It was just two of us.
He came on as my partner and webuilt TIC, and really it was two
of us.
We already had two products,right, because we had the
M-Sites product and we had TIC.
Then the next product that webuilt was Buzzsprouts.
We had tons of people on ourM-Sites platform that wanted to
be able to host audio.
So M-Sites we ended up having alot of churches that were using
it because they wanted a blogand a photo calendar and all

(07:07):
these kind of things.
This is before Facebook, and somy partner was like we should
build that as a separate product.
I was like I don't know, youthink anybody would pay for that
.
So Buzzsprout was actuallybuilt as a hosting platform for
those customers that we alreadyhad, for them to be able to
upload their sermon audios.
And we launched Buzzsprout in2008 and it was kind of a fun
project.
It was always fun to work on,but TIC was really the thing

(07:30):
that was paying our bills thetime-tracking app and so that
was what we spent most of ourtime on.
We launched several otherproducts.
We have a product calledStreamcare, which continues to
run today, which is a veryspecific product related to
workers' compensationpharmaceuticals.
So we just kind of fell intothat with a friend that needed
it and we were like we'll buildit.

(07:50):
We'll build it as a product.
We're not going to do clientservices work for you, but we'll
build it and charge atransaction fee type thing.
And so we still run thatproduct.
We have a product called DonorTools, which is donor management
for nonprofits.
I mean, we had more productsthan people, and that's what you
can do with Rails, right,Because you had Kevin and I and
we had multiple products, andsince then we made an
intentional push to grow theteam.

(08:11):
We're like you know what?
Can we bring more people on tothe team and have a real
life-giving organization?
Can we have a company that wecan share in some of the things
that we've been able toexperience as the founders, as
the people that actually startedthe company?
Can we share that with the team?
And since then there's about 20of us, about 10 on each side,

(08:32):
10 people on Buzzsprout andpeople on stream care.
Most of that is support.
On Buzzsprout we have fourRails developers, a couple
designers and then mostlysupport.

Speaker 2 (08:43):
That's awesome, it's a lot of products.
Yeah, for a lot.
One team, that's awesome.
I'm curious are M-Sites or TICor either of those still running
, or yeah, yeah, okay.

Speaker 4 (08:52):
TIC is still running M-Sites.
We actually shut it down.
So we started M-Sites in 2001because that's when we started
development.
I think we started havingcustomers by 2002 and we just
shut that down last December.

Speaker 3 (09:05):
Oh, wow, so it was a year ago.

Speaker 4 (09:06):
Finally, I was like, I told them.
I was like you guys have to go.
So I'm sorry, but it's not evensafe for us to running the
server, because it's just wecouldn't keep up, we just
couldn't get it running and so,yeah, so we ended up shutting
that down.
But TIC still does well.
We keep it secure and continueto support it, but we just don't
roll out features for it.
That's cool.

Speaker 2 (09:27):
So TIC was your first Rails app.
Yes, what version of Rails wasthat at the time when you
started?

Speaker 4 (09:33):
I want to say it was either Rails 1 or Pre-Rails 1.

Speaker 3 (09:37):
It was your OG.

Speaker 4 (09:38):
Yes, it was OG, we actually went to Chicago and met
with the Basecamp team Backthen.
They had a little workshop thatthey did at the local
university and it was a gettingreal workshop and it was
hysterical, coming from clientservices, where you wrote
requirements, documents and youhad a map of all the things that
you were going to build.

(09:59):
And they're like throw all thatout and totally rethink the way
that you build.
And so we're in there and it'sjust challenging every
conception that we had about howto build a product.
And Kevin, my partner, and I wewere like, okay, we're just
going to do it.
We're just going to do itexactly the way they said.
We're going to fight ourinstincts and we're going to do
it the way they did.
And that's what we did with TICand really I mean it changed our

(10:20):
lives, not just the framework Ilove writing beautiful code but
also the way that we approach.
I mean the Rails opinion playsinto how you approach your
product and how you buildfeatures and how you sell and
position your product, and so itreally has.
That's why Railsworld tying itback to Railsworld, that's why
Railsworld was such a greatopportunity for us.
We've received so much from theRuby on Rails community looking

(10:43):
for any opportunity to be ableto give back, and the Rails
Foundation and Amandaspecifically.
Like what she put together wassuch a great package.
It just fit exactly who we areto be able to give back to the
Rails community because of theimpact it's had on us, that's
awesome, but I am curious youmentioned TIC doesn't get new
feature updates, being such likea early Rails app.

Speaker 2 (11:04):
What version do you have it up to now?

Speaker 4 (11:06):
Wow, yeah, that's a good question.
Tic we brought up to, I believe, rails 6.
So we didn't make it 7.
Yeah, respect, respect.
Otherwise it's just too painful, but it is on an older version
of Ruby, I think it's 2.65.
And so we're having some issues.
We don't typically work inDocker, but we're looking at
setting up a Docker and thenwe're going to, in the process

(11:30):
actually of upgrading, to getthat to a more stable version of
Ruby so that way we can run itlocally.
If we want to go touch things,we want to be able to go do that
.
That's really cool.
It's been out for so long, it'sso stable.
It's not like you've got a lotof bugs or anything, but you
just want to be able to go andrun that code.

Speaker 2 (11:46):
Yeah, and if you do need to make a change.
You don't want to upgrade toRuby 3 and then introduce bugs
that you didn't have before.
Just because, you upgraded.
I'm really impressed by that.
It'd be amazing if they got to3, like Rails 3.
So Rails 6 was double myexpectations.

Speaker 4 (12:04):
Yeah, no, we were still actively developing on TIC
when we went to Rails 3.
Tic was our primary product,really until about 2014.
It was kind of what we would dois, from work cycle to work
cycle, we would choose whatfeatures we wanted to work on.
Hey, let's work on Buzzsproutthis work cycle, or let's work
on TIC this work cycle, and sowe would go back and forth.
But then, about 2014, we saidlook, I think podcasting is

(12:25):
where it's at, let's just go allin on Buzzsprout, and that's
the only thing that we builtfeatures for.
And every once in a while wewould go back and we messed
around with that donor toolsproduct, because that's a fun
product for us to work on.
It's the latest Rails, it'sRails Edge.
Everything was built Greenfield, knowing what we had learned
from all these other products,and so donor tools is a fun
product for us to go work on andexperiment with.

Speaker 2 (12:46):
That's awesome.
So building a podcast hostingtool.
Andrew mentioned this beforethe call.
Something he'd be interested inknowing about is what are some
of the edge cases or things thatyou've run into that people
might not expect when building apodcast hosting platform?

Speaker 4 (13:02):
I feel like there was this lesson that we learned.
I told you guys about the whenwe went to that workshop in
Chicago and it's so funny, it'slike embarrassing to think I was
sitting at a table with DHH atlunch or something like that,
and again coming from aMicrosoft SQL server background,
coming from naming all yourfields and your database, like I
was a database snob, and I'msitting next to him and I said

(13:23):
something like you use aninteger column for your ID,
what's going to happen when Ihave millions of customers?
And David goes, do you havemillions of customers?
And I'm like no, that'll be agreat problem to have on it.
That's true, kind of a mantra tothis day that we say that'll be
a great problem to solve,that'll be a great problem if we
have that problem, but insteadI haven't even built a product

(13:44):
yet and I'm worried about when Ihave millions of customers.
And so with Buzzsprout, whenpodcasting really started to
explode, when really started totake off, all of those quote
great problems happened, all ofthose that'll be a great problem
to solve in the future.
Well, those all hit.

Speaker 3 (14:01):
So I was asked when base camp went down for a day
because, of the integer column.
How did you feel?

Speaker 4 (14:09):
Yes, yeah, I did not say anything, I didn't point
that out, but yeah, it's funny.

Speaker 3 (14:14):
Just twirl your mustache.
She was like yes, I foresawthis, I should have just tweeted
.

Speaker 4 (14:19):
That's a great problem to have.
It was something like that, butyeah.
So when Buzzsprout reallystarted to grow, we started to
run into all those issues.
So remember, caching used to bepretty painful before.
Rails made it really simplewith Russian doll caching and
things like that, and so we hadvery little caching.
We had no CDN, so we were justexposing those MP3s.

(14:40):
Originally we had them on ourserver and then we started.
What we would do is we wouldhost it on our server for about
90 days and then we would moveit into S3 as kind of an archive
and over time.
That's just crushing andexpensive.
We actually had a case where2010, 2012, somewhere in there,
we had a podcast that went viraland it was a soccer podcast and

(15:02):
it was called the Men inBlazers.
I'll never forget.
So Men in Blazers was a podcast.
Now at the time, we're charging$9 a month.
This podcast goes crazy.
I guess they get picked up byNBC or something like that.
Next thing we know we're at theoffice.
A couple of us were like hey,is everything slow?
Yeah, everything seems to be alittle bit slow.
Then we get a phone call fromour hosting company and they're
like what are you guys doing andwe're like what are you talking

(15:24):
about?
You're crushing all of ourbandwidth, we're going to shut
you down.
And then they get a phone callour hosting company.
We were working with a companycalled Rails Machine.
They get a call from theirhosting company and they're like
you're crushing our bandwidth,we're going to shut you down.
Next thing I know they shut ourbandwidth off.
So like our server is down,we're rapidly trying to figure
out what to do.
We end up having to shut downMen in Blazers to get everything

(15:46):
restored and the bill thatmonth it was like over 10 grand
for this $9 a month account.
We're like, okay, we're goingto have to figure this out.
Like we're going to have tofigure out how to scale
Buzzsprout.
And so at that point we startedmoving everything into the
cloud, everything into S3, andstarted to build that out.
But we still didn't even buildout the CDN for some years later
, when the bills just got soexpensive.

(16:08):
That was a really big projectto be able to start putting
things behind CloudFront andthen eventually Cloudflare and
then Active Storage came out andActive Storage doesn't really
play well with CDNs and publicassets, and so we've got tons of
monkey patching that we havecarried forward and we're
actually in the process rightnow of removing a lot of it,
because there's some things thatyou can do now with Active

(16:29):
Storage to make things better.
So there's less monkey patching, but still monkey patching for
the CDN that's probably one ofthe biggest was introducing
caching, scaling our servers.
We moved to Kubernetes and thatjust gives you the ability to
scale it out.
So now if a podcast goes big,it really doesn't do anything.
That matters is your bill.

Speaker 3 (16:48):
So whenever this episode blows up, we'll know
that the Kubernetes clusters arethe thing, yes, the nuclear
power is going to get turned on.
How early did you all switch toActive Storage?
Too early?
I'm curious to know more aboutthat because I remember having
pain with it.
I don't know anyone who hasn'thad pain with it, but it sounds
like you've had unique pain withit.

Speaker 4 (17:06):
Yeah, well, just because the way that Active
Storage was originally built wastotally makes sense for stream
care, that product that I wastelling you about, that's in the
medical space.
It totally makes sense becauseI want my assets to be totally
secure, dealing with people thatare accessing it or people that
are loved in users and all thatkind of stuff.
But if you've got an RSS feedso we have hundreds of thousands
of RSS feeds that all haveimages and MP3s and they're

(17:30):
getting hit by ridiculouspolling bots all the time Well,
every one of those requests isgoing to your server and then
get redirected to the actualsource URL.
Well, I remember when we weremessing with it, we kept trying
to roll it out.
Every time we rolled it out itjust crushed our server.
We'd roll it back.
We're like what's going on?
What's going on?
And then we realized that everyone of those requests it would

(17:51):
hit our server.
Then our server would check S3to see if the asset exists.
If it didn't exist, then itwould create it and whatever.
But even though all the assetswere already there, that request
, I want to say, took 600milliseconds.
It made no sense for somereason.
The request to verify that theasset exists on S3 took so long
that redirect took so long thatit crushed our server, and so

(18:13):
now we had to hard code it sothat, rather than putting in the
Rails slash storage URL, weactually linked directly to the
asset, and that was the monkeypatching that we had to do to be
able to get it to work.
And that's been in place reallyuntil most recently, with some
of the public mode and some ofthe things that you can do with
active storage.
John Pollard on my team andBrian Treywick have been working

(18:34):
really hard to remove as muchmonkey patching as we can to get
closer and closer to the Rails.

Speaker 3 (18:39):
But who among us has not monkey patched active
storage at some point though?

Speaker 2 (18:44):
That's all we do at.

Speaker 1 (18:44):
Podia, yours was one of those things where they
pulled it out of Basecamp and itwas like they don't have any
public files.
So it was like they didn't evenimplement any of that stuff.
But then it seems like a littlebit of an overlook on the Rails
core team to extract it andthen assume that people aren't
going to try to use it forpublic file storage.
So it was one where it was likeit felt like it was pretty

(19:07):
half-baked when it got released,because you compare it to
carrier, wave and shrine and allthe other ones.

Speaker 4 (19:14):
We went from paperclip yeah, we loved
paperclip.
Paperclip, paperclip.
Pretty exactly what we needed,yeah, but we were like no man,
we're going to do the activestorage, this is the Rails away
and was definitely premature.
And then they rolled out thatproxy mode or something.
They said, oh, active storageis going to work with CDNs and
what it was doing is itliterally will download from the

(19:34):
CDN and then put it on your webserver and serve it up from
there.
I'm like we've got petabytes ofstorage.
I can't pull that down to theweb server, but that was one of
the early updates to activestorage to be able to support
CDNs.
That's not what we need.

Speaker 2 (19:49):
Did you know that the number one reason startups fail
is that they run out of money?
There are so many ways forstartups to lose money, but
downtime shouldn't be one.
Recent studies found thatdowntime can cost $427 per
minute for small businesses andup to $9,000 per minute for
medium-sized businesses.

(20:10):
That's every single minute, buta monthly subscription with
Honey Badger helps you preventcostly downtime by giving you
all the monitoring you need inone easy-to-use platform so you
can quickly understand what'sgoing on and how to fix it,
which, my friend, helps you stayin business.
And, best of all, honey Badgeris free for small teams and

(20:32):
setup takes us little is fiveminutes.
Get started today at HoneyBadgerio.
Again, that's wwwhoneybadgerio.
I still don't know that.
I fully understand the CDNsupport.
We use it at Podia and I put itin Jobboardly the other day and
I felt like the dog at thekeyboard.

(20:53):
I don't know what I'm doing.
Like I have it working.
I use DigitalOceanSpaces, whichis like S3 compatible.
But yeah, it was.
I was just running to theproblem where I had a job board
with a ton of jobs and every oneof them had logos and then it
just crashed my server becauseit was making hundreds of
requests to the server to talkto S3.
So, yeah, that's a problem.

(21:14):
Yeah.

Speaker 1 (21:15):
We did a beginner Rails video and I finished the
entire video and I was like I'mjust going to show uploading
file and then using ActionText.
And then I was like, just on awhim, like we'll show the edit
thing and show that it embedsthat file there too.
Turns out thatDigitalOceanSpaces is very picky

(21:36):
about certain thing for publicaccess when you like resize the
image or something.
So I happened to just do thisat the very end of the recording
and it was like, yeah, that'sbroken.
And I get looking into GitHubissues on Rails and it's well,
we have to monkey patch activestorage to include the public
ACL or whatever on this specificrequest, just for spaces, not

(21:58):
for S3.
Because it Spaces is a S3compatible, but not a perfect
clone of the API or whatever.
So you can easily run into tonsof things like that.
So luckily now a lot of thisstuff is pretty solid.
There are some gotchas andwhatever, but it is Solid.

Speaker 2 (22:19):
Solid, yeah, solid storage.
I don't think it's solid.

Speaker 1 (22:21):
Solid is going to help us with active storage.
No Solid storage.
Yeah, yeah, yeah, yeah, yeah,yeah, yeah, yeah, yeah, yeah,
yeah, yeah, yeah, yeah, yeah,yeah, yeah, yeah, yeah, yeah,
yeah, yeah, yeah, yeah, yeah,yeah, yeah.

Speaker 4 (22:25):
Yeah, yeah, yeah, yeah, yeah, yeah, yeah, yeah,
yeah, yeah, yeah, yeah.

Speaker 1 (22:30):
Yeah, and yeah, yeah, yeah.
So it's really simple.
Yeah, I don't think that solidstorage is going to help us with
active storage.
No Solid storage.
We're just going to storeeverything on your web server.
Yeah, yeah.

Speaker 2 (22:40):
Just mount the 9 petabytes disk right to your
server.

Speaker 4 (22:41):
You're good to go, that would be the easiest
painful to change, because yougot to figure out how you're
gonna get from where you are towhere you want to be.
And so Cloudflare I have a mixedrelationship with because I

(23:02):
feel like they just own you andthey're not as mature as Amazon
like Amazon is very mature.
I mean you don't actually knowwhat you're gonna pay, but at
least they've got a formula likeyou might not be able to figure
out how that formula applies toyou, but at least you don't
feel like renegotiation all thetime, whereas cloudflare they
just call you and they're likehey, we want to talk and I'm
like I don't want to talk to youbecause I know how this is

(23:23):
Gonna go, and they're like well,you're using a lot of bandwidth
, can we maybe talk about?
And so I have to have thisphone call with them on a
regular basis.
But to change is painful, it'sjust so difficult, and so, as a
result, we tend to move prettyslow in changes in the area of
the CDN and storage and thingslike that.

Speaker 1 (23:42):
Makes sense.
That's hard to pick up and moveor make any adjustments to.
It's not like redeploying yourapp to another IP address and
you're off to the races.
This is a ton of stuff, and themost important stuff in the
product, so totally tons ofcaching that's out there.

Speaker 4 (24:02):
You've got RSS feeds that are cached.
You've got directories thathave been built and they do not
respond well to change.
As a matter of fact, well, Itold you that we're in the
process of getting closer andcloser to the rails on active
storage and as we're moving inthat direction, we made a change
and we didn't realizeinadvertently it changed the
underlying URL.
You know how.

(24:22):
It kind of went up with avariant.
It has a specific URL, based onwhat you do, to how you modify
that variant and we didn'trealize it.
But in the process of upgradingto Rails edge and making some
of those changes, it changed thevariant URL.
So when we deployed it, all ofour RSS feeds, hundreds of
thousands of RSS feeds, everyURL changed the variant, which,

(24:45):
okay, it's not that big of adeal when you pull down the RSS
feed, except that those RSSfeeds get pulled and when things
change it triggers events onall these other companies, and
so Amazon, their podcast hostingservice.
They reached out to us and what?
did you guys do Like our serversare blowing up and so it's
impacting not just us, it'simpacting our partners.
And when we impact our partners, so Amazon.

(25:06):
They delayed updating their RSSfeed ingestion from bus sprout
for 24 hours.
As a result of that, we're like, oh my gosh, not a lot of
people use Amazon podcast, butyou might have one customer
realizes it and says, hey, mylatest episode isn't showing up
in Amazon yet.
So there's a lot of there's alot of things.

Speaker 1 (25:25):
Like you have the power over Amazon now because
you can make a change, and thenAmazon halts.
They're like hold on.
What did Tom do?
No, what did Tom?

Speaker 4 (25:35):
do.
No, I feel like I can maketheir life miserable, but they
don't care.
I'm like you guys shouldn't bepulling us like that.
You shouldn't be literally.
I don't know how familiar youguys are with the podcasting and
podcasting 2.0, but there's amuch better way to do it.
There's something called podpings where anytime an RSS feed
changes, people can subscribe,kind of like pub sub hub.

(25:55):
You can use that too.
But whenever the RSS feedchanges, you can send out a
notification, but nobody none ofthe big players use it.
Amazon doesn't use it, Appledoesn't use it, Spotify doesn't
use it, and so, as a result,they are literally hitting your
RSS feed all the time, likeevery five minutes.
And when Amazon first launchedtheir service, I was like, look,
you guys have an opportunity todo something way better than

(26:18):
what your competitors are doing.
And they're like yeah, we'rejust going to pull down the RSS
every five minutes.
It's so much easier.
I'm like it's so much moreexpensive for everyone involved.

Speaker 1 (26:26):
But that's the way they know, that's how they make
their money.
They're like well, we're goingto get you to use more S3
bandwidth.
And then that's funny.
I was curious, going back alittle bit to running all these
different products, being inthat situation myself, do you
ever feel overwhelmed with likewe got too much going on, and

(26:47):
was that maybe why you know youled to shutting down some old
stuff, that basically sayinglet's feature, freeze it and
stuff?

Speaker 4 (26:56):
I think in the office we talk about product guilt.
That's what we call it.
So when we're working onBuzzsprout, we have product
guilt about tick, or we haveproduct guilt about donor tools
oh man, I'd love to be able toroll out this feature or do this
thing and that's really theonly pressure that we feel.
And so we gave ourselvespermission and we said look,
we're not going to feel guilty,we're going to go all in on
Buzzsprout.
This is the product that we'regoing to be working on.

(27:18):
But you know, we've embraced alot of the 37 signals culture
and we want it to be calm, andthat means that we're not going
to squeeze every dollar out ofour customers.
We're not going to feel thisimmense pressure to stay on a
treadmill of rolling outfeatures.
We're going to do what's fun.
I mean, that's literally whenwe talk about what features we
say okay, what's its potentialimpact for our customers and

(27:40):
delivering value?
Is it fun?
Is this going to be fun for us?
And if it's not fun like it'sgoing to get dinged, like we're
going to put it down on thepriority list and so whenever we
go to the betting table tofigure out which pitches we're
going to take.
Those are some of the thingsthat we talk about, and so I
think having multiple productsdoesn't have to be stressful and
it doesn't have to be painful,but you have to give yourselves
permission to not go after everydollar and to not feel the

(28:02):
pressure associated with it,because you know, oh, you should
be grinding, you should be bleb.
That's just too much, it's nothealthy.

Speaker 1 (28:09):
Really like the terminology of product guilt.
That's a really good.
It's the exact feeling that Ihave on stuff that we've built
and haven't really touched for alittle while, and so like a
perfect description of it and Iguess just being like honest
about, well, yeah, we're goodwith that.
Like where it's at is fine,this isn't something we're

(28:30):
excited about or whatever.
Let's let it sit or whatever,and that's a okay.
Do you combat that a little bit?
Or does that get hard whenpeople are asking for 100,000
new features and BuzzFraud orwhatever?
And how do you deal with futurerequests and like design, where
we're going and make thosedecisions?

Speaker 4 (28:51):
We want to be honest all the time, so suddenly talk
about with our support team.
We don't want to mislead people, and so we're honest with them
If they ask for a feature.
You and I were talking beforewe started recording about
people wanting to edit the RSSfeed we will never build that
feature.
We will never build it.
So if they write in a supportand they go, hey, I'd like to be

(29:12):
able to edit my RSS feed, Idon't want to write back and say
, oh, thanks, we're going to addthis to our feature list and
we're going to share it with ateam and blah, blah, blah.
No, we won't do that, becauseBuzzFraud is built to be the
simplest way for you to be ableto host, monetize, promote your
podcast, and this would make itreally difficult and you could
blow up your RSS feed and it'snot a good idea.
But here are two competitorsthat give you that ability.

(29:32):
You might want to go check themout, like that's an honest way
to respond to it.
And so the same is true for allof our products.
For tick, somebody would writein and say tick is a time
tracking application, but it'sspecifically for tracking your
time to budgets.
And so with all of our products.
We want to be very specific.
We say that we want to have amantra, we want to have
something that we do, that wecan bounce all of our feature

(29:54):
requests and ideas off of.
So tick, for example, is theeasiest way to track your time
and hit your budgets.
It's not the easiest way totrack your time, but it's the
easiest way to track your timeif you're going to hit a budget.
Perfect examples People wouldwrite in and say, hey, I want to
do a weekly time card.
Well, a weekly time card.
You will never hit your budgetbecause you will wait until the
end of the week or maybe thenext week to actually enter in
all of your hours for an entireweek.

(30:15):
You're going to blow yourbudget if you do that.
So if somebody writes in withthat feature request, rather
than just giving them stockanswer, we tell them no, tick,
we want you to hit your budgetsand because of that, we're not
going to have a weekly time cardfeature, and so that's
something that we try to do withall of our support requests and
feature requests.

Speaker 1 (30:32):
That's smart.
You reminded me of a sales guyI worked with at a previous job.
He was kind of teaching mesales and stuff and I think a
lot of programmers grow up andimagine sales people and
marketing is kind of like thecar salesman just pushing
products on Like you need to buyour stuff, like no matter what
if it's good for you or not.

(30:53):
You wanted time tracking useour product, nobody else's, and
he was like no matter what.
Yeah, and he was telling me thesame thing where it was like
look, the goal here is get themto the solution.
Hopefully it's your solution,but if it's not, tell them that
and send them away and they willbe much happier and chances are

(31:15):
they will know a friend thatneeds time tracking and actually
cares about the budget.
And they're like, actually youneed to go use tick and it kind
of, in a way, ends up being sortof marketing where you've
transferred Like this was goingto be a failed sales for this
person, just because of thenature of it.
So let's just accept that andhelp them in general and then

(31:40):
they will remember that it's agreat experience with us, even
though they didn't buy ourproduct or whatever, and I
thought that was super smart.
It turns it into like, hey, wejust care about you, we just
want you to be successful andwhatever, and if we're not the
right thing, that's okay, whichis amazing.

Speaker 4 (31:57):
And, if you think about it, if you were to sell
that customer, if you were toget them to sign up, even though
they don't really share yourthis is where I was talking
about how it's related to RailsIf they don't share your opinion
like we write opinionatedsoftware if they don't share
your opinion, then you are goingto be constantly battling them.
They're going to constantlywrite in with feature requests
that don't make sense becausethey don't share your opinion
about how time tracking shouldbe done, or they don't share

(32:18):
your opinion about how podcasthosting should be done, and so
you want to be as clear as youcan with.
This is our opinion about ourproduct.
If you share that opinion,awesome, we're going to have a
great relationship.
If you don't share that opinion, hey, you might want to go
check out here Some otherproducts that have different
opinions.
And it's not to say that ouropinion is right or wrong.
It's just that's our opinion ofhow we build our software and I

(32:40):
think that's freeing,liberating for both you and for
the person that's writing in.

Speaker 1 (32:45):
Yeah, that is awesome .
I highly respect that.
I feel like, sadly, that's kindof a rare approach that people
take.
They're kind of worried aboutjust making as much money as
possible or whatever.
And it's like reality is youprobably make more money if you
do the right thing and build theright reputation, because then
people will come to you, becausethey know they'll be treated

(33:06):
right or whatever.
And it's a justshort-sightedness or whatever.
I think is they're like worriedtoo much about making money
today and not doing the rightthing in the long run, which
will end up making them moremoney.

Speaker 4 (33:21):
So much programming has happened to people's brains
to think that it's all aboutgrowth at any cost, why wouldn't
you do something if it's goingto make you more money Versus?
Well, is it going to make youhappy?
You're going to be happier ifyou do that.
And they look at you crazy,like why would you even ask that
question?
Well, because it's ourmotivation for almost everything

(33:41):
that we do in life.
So why wouldn't you ask thatquestion about your business?
Are you going to be happy ifyou build that feature, or are
you going to hate your lifebecause you're going to support
this stupid thing that yourolled out because you had a
customer that wanted it?
Is it going to just suck thelife out of you every day
because you have to support whatyou were talking about Domain
name management and stuff likethat?
And I think that needs to bepart of the equation and it's

(34:02):
foreign to a lot of people.
They're like well, you'releaving money on the table.
Absolutely, I'm leaving moneyon the table.
I'm doing that on purpose,because I'm optimizing my
business for happiness, not justthe happiness of the founders,
but happiness of the team, ofthe people that are working on
the product and our customers.
I want to optimize forhappiness for them.
If they share our opinion, theyshould be happy and love the

(34:22):
product, and that's, I think,just a different focus.
And we have that opportunitytoo, because we're privately
funded, like, I don't haveoutside voices forcing me.
We've got a customer that wantsthis, you've got to do this.
No, I don't have to do that.

Speaker 1 (34:36):
Yeah, and that's something like Jason Fried and
DHH have talked about to you.
We don't have custom enterpriseplans.
Everybody is on the same publicpricing, which means nobody has
a larger say in the future ofour business.
If they wanted to take it awayand demand a certain feature or
something Like, we can say, ok,great, goodbye, and we lose

(35:00):
$1,000 a month or something.
But in the big scheme of things, like it doesn't matter.
And the other thing too is likeyour business, if you don't
have investors, your business isyour life and you get to choose
to do whatever you want.
And there was a period of timewhere I was kind of burnout and
decided I'll do screencasts butjust kind of play video games

(35:21):
the rest of the week and I waskind of working four hours a
week and so I hadn't even readthe four hour work week book yet
.
But I was like, holy crap,that's good, that's kind of
crazy where I'm just in a periodin my life where I need to just
take a sabbatical almost, but Ineed to keep doing publishing
screencasts and stuff, and itwas amazing.

(35:42):
And then there's times whereI'll have a kid last year.
I'm going to take off, howevermuch time, I need focus on him
and whatever.
And that is another sort ofthing where you decide what you
want to do.
If you want to go be a slave toyour customers and do whatever
they ask for, go right ahead.
You might make a few moredollars, but are you going to

(36:03):
enjoy it?
That's probably the moreimportant thing, at least to
some people not everybody, butthey'll probably learn it in the
long run.

Speaker 4 (36:11):
That was maybe not the right choice or something,
but I think it's like a dogchasing a car, like what happens
when you catch it?
When you finally get there,you're like I'm not happy and I
love working with SaaS founders.
And you talk to SaaS foundersthat build a product and sold it
, and right after they sell it,there's this what am I going to
do?
Why did I do that?

(36:32):
This is this thing I've beenchasing for so long, but I don't
know why I did that.
Just like I was thinking ofdays in a car like why are you
doing that, man?
It's not going to end well, ifyou succeed and I think a lot of
SaaS founders they get intothis mentality that has just
been programmed somehow into ourbrains of just chasing every
dollar and chasing an exit andno one is really chasing life,

(36:55):
like what gives you life?
What gives you happiness?
Those are the things that youreally want to be chasing, and
then everything else should fallin line, and most of the time
when you talk to people thetimes of your life when you were
happiest, you probably weren'tmaking the most money Probably
there's no correlation betweenthat.
There's other things that go onin your life that give you
happiness and joy in life, andthose things are typically not
related to money, but youwouldn't believe that if you go

(37:17):
and you read articles aboutcompanies.
Right yeah.

Speaker 1 (37:21):
You have to remember that those articles are written
to get eyeballs and whatever, sothey're designed to get your
attention and to sound like oh,here's the magic bullet, or
whatever.
But I think that's been half.
The reason I've left Rails isit comes from that philosophy
that 37 Signals puts out to youabout building things in just a

(37:41):
different way.
And Jason's talked about justintentionally ignoring all the
articles and all the stuffthat's going on out there and
just like figuring out what areyour first principles, what do
you care about, and then makingdecisions based on that and kind
of intentionally being naiveabout what is the rest of the
world doing, because then youcan come up with your own

(38:01):
answers that will actually makeyou happy instead.
And your dog chasing your carthing reminded me of astronaut
syndrome, which is you spendyour entire life from a child to
becoming an astronaut.
You finally go to the moon orwherever, and then you come back
home and it's like you're 30something.
What the hell do you do withthe rest of your life?

Speaker 4 (38:23):
Like what's going to do?
You're just like yeah.

Speaker 1 (38:25):
And you're just like well, okay, I hadn't thought
about the long term at all.
I was just so focused on makingmoney or getting to the moon or
whatever the short term goalwas.
And then you accomplish it andyou're like it's done.
I don't know what to do now andI'm not necessarily fulfilled
for the rest of my life.
So it's such a strange thing.

(38:47):
But if you look at itdifferently and you're like well
, we're going to build a podcastproduct and then our goal is
helping people share theirstories and the higher level
picture of it, and it's like wehappen to make this product that
needs to make money, needs tobe sustainable and whatever.
But our goal is not just tosell podcast hosting.

(39:08):
Like that's kind of a shallowgoal to have.
Your goal is really way higherto help all these people like
start their own careers orwhatever it is.
There's so much that podcastingreally can benefit in so many
different ways.
And obviously that's what youguys are doing.
And we're like so glad to haveyou in the Rails community and

(39:29):
support you now, or now thatwe're on Buzzsprout.
We're excited for that and it'sawesome.
So thanks for sponsoring thepodcast booth, by the way.

Speaker 4 (39:37):
No, that was like I said, that was just a perfect
fit of we're talking about howcan we get involved, how can we
give back to the community andAmanda had the idea of being
able to set up that booth andsponsor podcasters being able to
go, and it was just, it wasperfect.
And a drop in the bucket, a dropin the bucket compared to what
we've gleaned from the community.

(39:58):
Amanda and other people.
Well, you just want to makesure you get everything out of
the conference for your sponsor.
I'm like you don't understand,like this is not about us
getting anything.
We've gotten so much.
This is us trying to give back.

Speaker 3 (40:10):
So I told we did a podcast with Amanda recently and
I told her that it turned meinto a diva.
Now I'm like you want me topodcast at a conference without
a booth and oh yeah, it's greatto have nice equipment too.

Speaker 4 (40:22):
That was fun.
We go to a lot of podcastingconferences for Buzzsprout and
everyone.
There are podcasters and ifthey're going to a conference
they're probably pretty serious,and so they're not as into the
equipment as everyone at Railsworld was.
They're like oh my gosh, I'venever used this microphone, I've
never used this equipmentbefore, and so that was a real
fun dynamic for us as well.

Speaker 1 (40:41):
Yeah, we're going to need a little podcast booth at
each of our homes so we canrecord in that.

Speaker 4 (40:46):
And roadcaster pros Everyone's going to have a
little bit of a buster now.
I didn't hear any sound effectson the the end.

Speaker 1 (40:52):
Oh, Jason was pretty into it.
On the second episode.

Speaker 3 (40:55):
If I was able to reach across the table I would
have been beaten on that thinglike a DJ.

Speaker 2 (41:01):
Yeah, I also figured out how to connect my phone to
it, and so there are going to bea lot of copyright issues with
the second one.
Yeah, yeah, it's perfect,perfect.
Well, tom, I'm really glad thatyou came and hung out with us
today.
Thanks for sharing, thanks forbeing part of the community.
Really glad we have crossedpaths in the last couple of
years.

Speaker 4 (41:21):
Thanks for having me and thanks for what you guys do
for the Rails community.
I mean, this is a great podcastand a great way for the
community to stay connected andlearn what's going on, and I've
really enjoyed listening to itmyself.

Speaker 1 (41:33):
All of our rambling.
Really it's great.
Thank you, tom.
That is the correct response.

Speaker 3 (41:38):
you to Thank you, Tom , for saying that.

Speaker 1 (41:43):
Thanks for everything and, you know, thanks for these
stories of like, learned Railsand then changed my life and
built a business and rubber.
That was all the stuff.
I couldn't get enough of thosestories back in the day and that
was like what I loved.
And love sharing these thingsbecause I mean, it changed my
life too.
Rails has been quite atremendous thing and when it's

(42:06):
the one person framework, it isjust such a cool place to be, a
place that cares about.
Yeah, we care about the code,but we also care about, like,
more than the code and what youcan accomplish with it, and
that's sort of the thing I don'tsee in other communities and
stuff.
So it's just it's awesome toconnect with people like you and

(42:26):
your team is amazing andeverything.
So, yeah, thanks for joining usBeen a blast.
Thanks, guys.

Popular Podcasts

Are You A Charlotte?

Are You A Charlotte?

In 1997, actress Kristin Davis’ life was forever changed when she took on the role of Charlotte York in Sex and the City. As we watched Carrie, Samantha, Miranda and Charlotte navigate relationships in NYC, the show helped push once unacceptable conversation topics out of the shadows and altered the narrative around women and sex. We all saw ourselves in them as they searched for fulfillment in life, sex and friendships. Now, Kristin Davis wants to connect with you, the fans, and share untold stories and all the behind the scenes. Together, with Kristin and special guests, what will begin with Sex and the City will evolve into talks about themes that are still so relevant today. "Are you a Charlotte?" is much more than just rewatching this beloved show, it brings the past and the present together as we talk with heart, humor and of course some optimism.

On Purpose with Jay Shetty

On Purpose with Jay Shetty

I’m Jay Shetty host of On Purpose the worlds #1 Mental Health podcast and I’m so grateful you found us. I started this podcast 5 years ago to invite you into conversations and workshops that are designed to help make you happier, healthier and more healed. I believe that when you (yes you) feel seen, heard and understood you’re able to deal with relationship struggles, work challenges and life’s ups and downs with more ease and grace. I interview experts, celebrities, thought leaders and athletes so that we can grow our mindset, build better habits and uncover a side of them we’ve never seen before. New episodes every Monday and Friday. Your support means the world to me and I don’t take it for granted — click the follow button and leave a review to help us spread the love with On Purpose. I can’t wait for you to listen to your first or 500th episode!

Dateline NBC

Dateline NBC

Current and classic episodes, featuring compelling true-crime mysteries, powerful documentaries and in-depth investigations. Follow now to get the latest episodes of Dateline NBC completely free, or subscribe to Dateline Premium for ad-free listening and exclusive bonus content: DatelinePremium.com