34:39Yeah, I agree.
34:40I think so.
34:41And with Radiant, we're
actually, so because we can't.
34:44Do this thing where it's like end
to end encrypted and because of
34:46what, what our goals are, instead,
we're making it dead simple to
34:51fully run the whole system yourself.
34:54If you care about hosting yourself and you
want all the data and a big part, and to
34:58be honest, that's a lot of what SST does.
35:00SST helps you ship very complex software
multiple times in multiple environments.
35:05and so, because Radiant is an SST
app, it is very easy to point it
35:09at your own private infrastructure
and say, I'm just going to have
35:12a self hosted version of this.
35:14And it's, and we're making sure it's
like, As simple as it can be to do
35:18that, and get as close to, like, using
the hosted version because there's
35:23like some weird benefits of that.
35:24Like, so this version that we're building
is going to be mostly built on Cloudflare.
35:28If a lot of people end up self
hosting it, that's great because
35:31Cloudflare is paying for the usage.
35:33Like, The free tier is coming out
of each individual's deployment.
35:37They're like self deploying
it into CloudFlare.
35:39And that's like an interesting model
for, I don't think for radiant, it's
35:42like particularly interesting, but
if you look at, um, there's another
35:45project by, uh, Ben Vinegar, he
works at Sentry, called CounterScale.
35:50So this is a classic, like Google
analytics type product, right?
35:54It does like this web analytics,
the basics, and it's very early on.
35:57But it's not a hosted project.
35:59It's just something that deploys
into your own CloudFlare account.
36:01So he can have a million users
using it for free without ever
36:05really, you know, paying for that
because, you know, CloudFlare is
36:08much more set up to offer that.
36:11I'm very interested in that model.
36:12Uh, cause I think for a lot
of infrastructure pieces
36:14like that, it is a nice.
36:16To have it alongside the
rest of your infrastructure.
36:18I worked a lot in healthcare
environment, which has a lot
36:21of compliance requirements.
36:23And oftentimes I couldn't use the
tool I wanted to use because it
36:26wasn't hostable in my own environment.
36:29So, um, we're pretty excited about
like letting people do more of that.
36:33I love that.
36:34And I think this is like intuitively.
36:37It should be easy to self host your
own software, like whether it's like
36:42some company running it or whether
I just like take the software, put
36:46it on my Raspberry Pi, put it on, on
Cloudflare or AWS, but in reality,
36:52that's very much the exception.
36:54I'd be curious whether you can share
a bit more of like the reasons that
36:57you see why that's so hard and how
you're trying to make that easier.
37:01Yeah, I think, uh, it's funny
because there's a weird alignment
37:05if you think about this.
37:07We are a small team.
37:08If our system is really complicated
to run, that sucks for us.
37:12If we can make our system really easy to
run and really low overhead and we care
37:15about that more than everything, it kind
of starts to look like something that's
37:18easy to self host by anyone, right?
37:21So I think for us, like, a lot of times
we'll choose architectures that look
37:24weird because they're like, Oh, that
looks like the fourth option on the list
37:28of the ways they could have built it.
37:30But it's because we really, really care
about, low operation overhead long term.
37:38So even if it's like, you know, 20
percent harder to build up front, if
37:41it results in like less babysitting on
our end, we'll like choose that option.
37:46And it's because we're very committed
to continuing to be a really small team.
37:49And so we'll, we'll end up picking
those options and those options happen
37:52to align with like, what's, what's
simplest for, for the end end user,
37:57if they're self hosting, I will say
like there is a version of doing
38:00this, which we don't do, which is.
38:03Building your stuff in the most,
like, neutral way possible, so it
38:06can run in literally any environment.
38:09I definitely get that, but you
do end up having to run a lot of
38:14infrastructure on your own to, like,
get any complicated application working.
38:18If you do it in a totally neutral way.
38:20We kind of picked a middle ground where
it's like, we do rely a lot on, like,
38:24in this example, like, we're going to be
using CloudFlare, we're going to be using
38:28workers, we're going to be using their
queues, we're going to be using their
38:29PubSub, all the CloudFlare native things.
38:32So, yeah, if you want to go take
that and run it inside, like, just
38:37a standard server you have, it's
going to be a little bit challenging.
38:40And like, there are adapters and
stuff, and you can figure that out.
38:43But we're starting with just making it
runnable in your own cloud environment.
38:49So you can sign up for a
Cloudflare account and run it.
38:51I know that doesn't like hit the
exact extreme of like being able
38:54to fully run it yourself, but we
think it's like a nice middle ground
38:57for a lot of companies, right?
38:58Companies typically are already
using some form of this.
39:01Getting this stuff deployed
into their own account.
39:03I think it works well.
39:05What's weird is you ask, like,
why isn't this more common?
39:08I think it's actually common in this
weird way that people don't expect.
39:13A lot of companies build
SaaS software, right?
39:16They'll build like, I don't know, let's
say, let's take some random common
39:20thing, like Auth as a service, right?
39:21Like, I'm going to build Auth as
a service that people can use.
39:25And they initially launched
that as like a hosted product.
39:28And nobody uses it except for
people that have no money.
39:32So they have like a lot of users, but
you know, these users don't pay a lot.
39:35They start to try to move up, up market.
39:38They end up with bigger
companies, you know, medium sized
39:40companies, enterprise companies.
39:42They'll all love the product, but
refuse to use a hosted service.
39:46So then they're forced to figure
out how to make their stuff run
39:49inside the customer's AWS accounts.
39:52So if you do look at a lot of
these companies, they kind of
39:54do have this hidden, like thing
that they eventually figured out.
39:57I think companies should realize they're
going to end up in this place anyway.
40:00Like it's very hard to build a big
business purely off of a hosted thing.
40:04Like some people do it when you
really have like a large market,
40:08but oftentimes you're forced to.
40:09Bring yourself inside
someone else's environment.
40:11So I think one way or another,
you're likely to hit that.
40:14So it's good to plan for that upfront and
assume that you're going to run into that.
40:17And we, because we're like, We're
more in the infrastructure space.
40:20We kind of expected that from the
beginning, which is why we care a little
40:23bit more about making all that possible.
40:26So let's imagine I want to follow
this paradigm for Overtone.
40:32And I do think that Cloudflare could
be a very interesting fit for that in
40:35terms of the modern primitives that it
provides, so what would I need to do as
40:41the application developer of Overtone
who buys into that vision and says
40:45like, Hey, I don't want to operate like
the cloud thing for that, but I want
40:49to empower every user to deploy their
own for the benefits that it provides.
40:54What would I as the application
developer need to do to make that happen?
40:58And then also follow up question.
41:00What does someone who wants to deploy
that Which sort of additional stuff
41:04do they need to deal with as opposed
to just using something like Spotify?
41:08Yeah.
41:09Yeah.
41:09Cool.
41:09So I think, I think the simplest way
to think about it is how hard is it you
41:13for you to spin up a staging environment
for your own application, right?
41:17You want to create an exact copy
of your environment, but you
41:20know, just the staging version.
41:22So this requires bringing up
all the same infrastructure.
41:24It requires like, you know,
running your database migrations
41:27to get the schemas running.
41:28Um, requires a bunch of things.
41:29And, you know, the obvious thing is
you should be using infrastructure
41:32as code to help you do this.
41:33You define all your infrastructure as
code so you can point it at different
41:36environments and run entire copies of it.
41:39That's like the bare minimum.
41:41If you yourself can quickly create
another environment for yourself,
41:45you've kind of solved the problem.
41:46Now someone else can
follow those same steps.
41:49Where they're just cloning
your project and running.
41:52You might be using Terraform, you
might be using SST, whatever it is.
41:55Uh, you can do a thing,
deploy with your credentials.
41:58And the same thing ends
up in your account.
42:00Where this is a little bit
challenging is updates.
42:03So obviously, you know,
you have new versions.
42:05People can clone and redeploy, whatever.
42:07But there's sometimes
operationally challenging updates.
42:11Like you might have like a schema change.
42:13You might have, uh, like
data needs to be migrated.
42:16So, ultimately, the thing to always
go back to is how do you make it
42:21easy for your own team to do that?
42:23Are there programmatic
ways of doing all this?
42:25Or, like, if you need to do ad hoc
random stuff and that's part of your
42:29workflow, it's going to be annoying
for your end user to self host because
42:32then you need to, like, send them
the instructions, they need to do it,
42:34they might, like, do it incorrectly.
42:36So, if everything is tracked
in code and is automated and is
42:39programmatic, It's good for your team.
42:41That's good for the end user.
42:43and for an end user, in terms of
what they should expect, if you are
42:46using some version of the cloud, you
should hope that the thing you're self
42:51hosting is taking advantage of as many
managed services as possible, right?
42:55So I had this issue with PostHog.
42:57So PostHog is an open
source analytics tool.
43:00And when I was exploring it for
my healthcare thing, I was like,
43:02okay, we'd have to self host it.
43:04Let me go look at the
first self hosting steps.
43:07Step one, set up Kubernetes.
43:09Right, immediately there, I'm like, I
like, found a way to finally free myself
43:14of Kubernetes for my main application.
43:16I don't want to like go, have to
go manage a Kubernetes cluster
43:19again, just for this thing.
43:21So you should hope that, you
should pick tools that use
43:25managed, versions of these things.
43:27That's why, like, we typically focus
a little bit more on some of the
43:31serverless stuff, because it's very easy.
43:33If our app just runs as a Lambda
function inside of someone's
43:37AWS account, or as a Cloudflare
worker, there's almost no overhead.
43:41You're not like, you don't have
to like set up like Datadog
43:44to like monitor the memory and
like scale this up, up and down.
43:47It sucks to do that for like a small
tool that you're adding to your project.
43:52So we try to make use of managed servers
as much as possible so that the end user
43:56doesn't have as much operational overhead.
43:59and again, some people
are willing to do that.
44:01It's just, uh, it's obviously a
spectrum with all of these things.
44:04I do think it's a double edged sword while
it like really takes away that operational
44:09burden and operational overhead.
44:11It's not just about, uh, deployment cycles
and like the update cycles of the app
44:17that you're deploying, you potentially
also need to update a, like from database
44:22version A to database version B of like
just a database server that's running or
44:26like your analytics server or whatever.
44:28So that certainly takes a lot more effort.
44:31However, on a longer time horizon,
if you do rely on managed services,
44:36they might just at some point send
out a notice and say like, Hey, next
44:40quarter We're shutting down like
that plan that you're relying on.
44:44So you're also in some regards
might be building on quicksand.
44:48I think the, the larger a services
such as Cloudflare, I think the
44:53chances that the rug is being pulled
underneath you are probably lower.
44:57But it's always a double edged sword.
44:59And so my preference typically is in
terms of the architecture that I'm using
45:05is like to go as simple as possible.
45:07This, for example, why I'm also very
drawn to SQLite and I love the, all
45:11of the, the new tooling being built
around SQLite since SQLite that's, no
45:16one's going to take that away from me.
45:17It's just like a little file.
45:19That I can put on a SD card or whatever.
45:22And, uh, that's still gonna like similar
to that computer game from like the 1980s.
45:28that's still gonna
work, in, in the future.
45:30And I think that's a great way
to preserve data and you can
45:33still do so much with that.
45:35So I think that's sort of like
a third option, uh, instead of
45:39going with like hosted or, Very
scary self hosted infrastructure.
45:44If you make the self hosted
infrastructure just that simple to
45:48rely on something like, like something
that's almost serverless by default,
45:53like SQLite, I think that's a,
that's a very attractive idea for me.
45:57Yeah, no, I agree.
45:58And with everything I'm saying,
it's always like you have
46:01to exercise your judgment.
46:02I'm speaking from the things that
I typically have worked on and
46:05I think this is where we landed.
46:06but yeah, if I was working on something
that had different requirements,
46:09like, yeah, having like the
simplest approach, uh, makes sense.
46:13The only reason that we have to do
this is because we work on stuff
46:17that is like one of our tools is.
46:20Like, uh, like issues, like,
kind of like how Sentry offers,
46:23like, issues that extracts.
46:24So we need to process, like, a
large amount of logs, uh, because
46:28some people have, like, you know,
like, billions of invocations a day.
46:31So it's not the type of thing that we
can really simplify, like, we can't
46:34just give you, like, a single container.
46:36And this, because that's going
to get overloaded very quickly.
46:38So the options for us are some
crazy Kubernetes thing, or we
46:42just take advantage of AWS Kinesis
and all these things that are
46:45built in that are lower overhead.
46:47Um, but, you know, if those
weren't my requirements, I would
46:49probably opt for something similar.
46:51And yeah, at the day, it always just
comes down to like, have good judgment.
46:55With whatever you're doing.
46:57Yeah.
46:57I think it's just as web developers, we're
just so like in, in our like dependency
47:04fury in a way where like, we just like
npm install this, npm install that, and
47:09we also not just package dependencies,
but we also like add infrastructure
47:14dependencies left and right to something,
I think is a big contributor, contributor.
47:19Why the long now aspect of local-first
software is so hard to achieve.
47:24So I'm always, uh, trying as hard
as possible to avoid dependencies,
47:29whether it's package dependencies
or whether it's like infrastructure
47:33dependencies as much as possible.
47:35But it's always a trade off
since they do sometimes can
47:38really save you a lot of time.
47:39Yeah.
47:40Yeah.
47:40I think for us, we kind of land
in this middle ground where
47:42we'll commit to one thing.
47:44But then we'll reject a
bunch of other things.
47:46So, there's this phenomena happening
right now, where, uh, you have these large
47:51cloud providers that offer these services.
47:53The services aren't like, The
best, most wonderful things to use.
47:58There's a bunch of companies that'll
like, make a copy of just that one
48:01service, but do it like 10 times better.
48:04It's often really compelling, and like
you, I can see why people are tempted
48:08to adopt every single one of these, and
people end up with a stack where it's
48:11like, It's my application and sitting on
top of like 10 different other vendors.
48:17And these 10 vendors are also startups,
you know, like it's unclear if they're
48:21going to be around for a while.
48:22So for us, we like as tempting as it is.
48:25And some of it has nice as some of these
offerings are like, we never use those.
48:28We just stick to the most lowest level
primitives that we can be sure are
48:32going to be around for a long time.
48:34And we'll commit to those.
48:35Like, we're going to accept
the fact that if something
48:37happens to them, we're screwed.
48:39More likely we're going
to die before they do.
48:40So that makes sense, but like, you know,
we won't, we won't apply that everywhere.
48:44So again, it just comes down to
like having the right judgment