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).