all repos — site @ c53eb9f1b57d46b6f6b5365c582536613509cb2f

source for my site, found at icyphox.sh

pages/blog/cloud-foss.md (view raw)

  1---
  2template:
  3slug: cloud-foss
  4title: Cloud (F)OSS is a good model
  5subtitle: On building (mostly) open source startups
  6date: 2022-02-07
  7---
  8
  9Of late, I've been thinking a lot about what makes a startup work, and I
 10think open sourcing your product -- or a good portion of it -- is a
 11great approach. To be clear, I'm only talking about SaaS platforms, and
 12not any other kind of product. Hence, I'm dubbing this as "Cloud FOSS".
 13
 14The title of this post was initially "Cloud FOSS is the way", but I
 15quickly realised that I know next to nothing about actually building
 16companies and I'm really just talking out of my rear end. Nevertheless
 17it's still pretty fun to try and reason about why the open source model
 18is great for startups, so reason we shall.
 19
 20Broadly speaking, there are two kinds of "Cloud FOSS" companies:
 21- the open source and cloud versions are identical, entirely free software (à la
 22  [sourcehut](https://sourcehut.org))
 23- the cloud version has exclusive "premium" features that aren't present
 24  in the open source version -- a.k.a the open core model; it seems to
 25  be gaining a lot of popularity in recent times with the likes of
 26  Gitlab etc.
 27
 28Let's dissect each approach and see what drives them.
 29
 30## the all-FOSS absolutist model
 31
 32As mentioned above, sourcehut is a great -- if not the only -- example
 33of a company built this way. Unless of course, I'm gravely mistaken
 34(wouldn't be the first time!), and you know of another, or are building
 35one yourself -- please [email me](mailto:x@icyphox.sh); I'll be happy to
 36mention it here.
 37
 38**Update**: I was indeed mistaken. Here are a few companies built
 39similarly:
 40- [jmp.chat](https://jmp.chat/) -- free-as-in-freedom US/Canadian phone
 41  numbers
 42- [Frappe](https://frappe.io/) -- Indian company building a suite of
 43  free software products
 44- [Plausible Analytics](https://plausible.io) -- free software analytics
 45  platform. The self-hosted version has a less frequent (LTS) release
 46  schedule.
 47
 48For those unaware, sourcehut is an entirely free software
 49company/startup that's building a software development platform; a suite
 50of tools and services like git/hg hosting, CI, mailing lists, issue
 51tracking etc. All of these can be self-hosted, with [plenty of
 52docs](https://man.sr.ht/installation.md) to get started doing so. Or,
 53you can of course, pay for the hosted service at [sr.ht](https://sr.ht),
 54their flagship instance.
 55
 56Granted, this one's probably quite hard to pull off, especially if you're VC
 57backed or have investors of any kind. When your product is free
 58software, you can't really bake in analytics and other creepy
 59user-tracking shit that's common these days; what pages perform better,
 60what buttons do users click more often, the likes. And naturally, you
 61don't really have metrics to show your investors that your latest
 62feature du jour is doing great (or not).
 63
 64Thankfully for us, sourcehut is completely bootstrapped. They've
 65[written
 66about](https://sourcehut.org/blog/2022-01-09-how-does-our-business-work/)
 67their business model, and it's beautifully simple: they make money from
 68users subscribing to their service -- the hosted version of the
 69sourcehut software -- and from other free software consultation gigs.
 70That's it. And they're quite profitable. Very cool sourcehut.
 71
 72## the less absolutist open core model
 73
 74The open core model, according to Wikipedia's definition:
 75
 76> primarily involves offering a "core" or feature-limited version of a
 77> software product as free and open-source software, while offering
 78> "commercial" versions or add-ons as proprietary software.
 79
 80Typically in SaaS offerings, the "commercial" version is a hosted
 81version of the open source software, _plus_ the usual suspects like
 82analytics, project management, user management, and a seat count for
 83different subscription tiers. Some startups may simply continue to
 84operate this way, with feature parity between the open source and cloud
 85versions (minus the meta "features"); however, this may not always be
 86the case.
 87
 88Oftentimes, in accordance with the definition above, the open source
 89version may be _feature-limited_, with some parts of the core feature
 90set only available on the cloud version. In most cases, this probably
 91doesn't matter to the average self-hoster, since the paywalled features
 92will most likely be irrelevant to them -- usually catering to larger
 93deployments (support for say, CockroachDB), or enterprise-level
 94deployments (Active Directory support, SSO), etc.
 95
 96The business model is quite straightforward -- get initial traction via
 97the self-hosted open source software, while building out your cloud
 98offering. The community built around the self-hosted software are your
 99initial pool of potential paying customers. Generally, these are either
100early-stage startups (seed to series A) who don't have a large enough
101team to manage additional infrastructure, or large enterprises who are
102happy to pay for well, the enterprise features. These enterprise deals
103may even transition into large on-prem contracts.
104
105One thing to note about most open core projects is they'll most likely
106enforce a CLA or a Contributor License Agreement. This usually says
107something to the effect of "while you own the copyright to your code,
108you grant us the rights to make money off it, or even relicense it
109should we wish to do so". It's [probably not a good
110idea](https://drewdevault.com/2018/10/05/Dont-sign-a-CLA.html) to sign
111one.
112
113## why cloud FOSS works
114
115Cloud FOSS as a basis for building a company probably works because of a
116bunch of reasons. As a startup, getting an initial foothold in the
117market can be hard, and offering a fully open source version of your
118platform can simplify that a whole lot. Setup a GitHub organization, do
119a Show HN and Bob's your uncle. Obviously, it isn't _that_ easy, but you
120get the idea.
121
122Having an initial userbase from open source can be very useful. You
123essentially get free insight into what features work and what don't,
124and what features your users want. You also get bug reports, issues from
125various deployment scenarios, environments, operating systems, etc. A
126goldmine of information to help drive product development decisions.
127
128Further, having a community built around your product helps too. High
129quality contributors (sometimes), an audience for PR events, the ability
130to conduct user surveys and most importantly, a hiring pool.
131
132With that concludes my ideas on why Cloud FOSS is a good way to build a
133startup. Again, I must reiterate that I literally have no idea what I'm
134talking about and whatever I posit is merely a result of "Oh I've seen
135it work this way before". I'm happy to hear what you think.
136
137<hr>
138
139This post was inspired by a conversation with
140[Prithu](https://prithu.dev).