Live data from Hacker News

Ask HN: Founders who offer free/OS and paid SaaS, how do you manage your code?

news.ycombinator.com

101–110 of 117 posts

Re: Ask HN: Founders who offer free/OS and paid SaaS, how do you manage your code?

#101
1) Do you have two separate codebases for free and paid?

No. Sentry has one codebase between free and paid. We have a Django monolith plus some services where all our features are implemented:

https://github.com/getsentry/sentry

https://github.com/getsentry/relay

https://github.com/getsentry/snuba

https://github.com/getsentry/vroom

etc.

We have a Docker Compose wrapper in a separate repo:

https://github.com/getsentry/self-hosted

We have a private repo called getsentry/getsentry that is another Django app that imports the public one and uses Django signals (iirc) to meter usage for billing. That is what we deploy to SaaS. All product features are implemented in the public repos.

3) How about employee access?

Employee access is managed through UI, I honestly don't know whether it lives in getsentry/sentry (public) or getsentry/getsentry (private). Probably the latter?

2) How do you handle updates to your product?

Employees work in public on GitHub. We ship more or less continuously to SaaS. It's possible to deploy approximately continuously on self-hosted as well, though we also bless monthly snapshots for a more relaxed cadence. Does that answer this question?

Re: Ask HN: Founders who offer free/OS and paid SaaS, how do you manage your code?

#102
post #83

Earlier quoted context omitted.

I haven't heard of Fair Source before -- is it gaining traction? Did you use the "legacy license" (that is linked to on the website)?

It's bleeding edge -- not even "official" yet. It's meant to be an umbrella term to replace the 'open source' vs 'source available' debacle when discussing permissive 'almost-open-source' non-compete licenses like FSL, BUSL, SSPL, ELv2, etc. More: https://twitter.com/chadwhitacre_/status/1790101820364267902

[deleted]

Re: Ask HN: Founders who offer free/OS and paid SaaS, how do you manage your code?

#103
post #73
post #34

For our SaaS [1] we have a plug-in architecture. And each plugin has a concept called install constraints. They consist of app, tier, and the role of the user provisioning the account. Based on the right combination, certain plugins get auto installed and the user can enable/disable optional plugins/features. Upon installation, the plug-in module has a “lifecycle” module with callbacks for install, uninstall, after_i…

I love this concept (and I’m probably in that market segment). But, I didn’t see any examples on your landing page. It would be really nice if you had one or two examples to show off what a resulting site would look like.

thanks! We are currently revamping that site because it’s just not converting and we suspect what you said is one of the reasons.

We will have samples up in a couple weeks. But stay in touch! ashish@simplyscholar.com

Re: Ask HN: Founders who offer free/OS and paid SaaS, how do you manage your code?

#104

Earlier quoted context omitted.

Could an individual of ill-repute freely download the source containing the EE and edit it to turn off checks for KEYGEN_EDITION and KEYFEN_MODE? Obviously you have license protection against them redistributing the modified version but would anything practical prevent them from running it themselves?

Almost all software company revenues come from business customers who are too big to mess with stuff like this.

This. We have a few different things at work where it would be trivial for me to modify the database to allow unlimited users or grant access we don't pay for, but it'd be mostly pointless.

Re: Ask HN: Founders who offer free/OS and paid SaaS, how do you manage your code?

#105

Earlier quoted context omitted.

Why

Because you'll end up with lots of "if (user.isPaidUser) {...}"

Well, yeah, but this was just pseudocode to convey the concept that you should solve the problem in code, not by maintaining separate code branches, deployments, etc. One approach would be to have an implementation of FooService for each sku, and code that uses the right one based on the current user/tenant/payment status/etc. This gets into dependency injection, inheritance, and other language/framework specific things. The actual approach would vary based on the project. It may be that CurrentUser.Sku and CurrentUser.IsPaymentCurrent is sufficient. Or it may be that you need a FooService per SKU, or any number of other ways to handle.

Re: Ask HN: Founders who offer free/OS and paid SaaS, how do you manage your code?

#106

Earlier quoted context omitted.

Why

Because you'll end up with lots of "if (user.isPaidUser) {...}"

I get that but then what would the alternative be? I am not saying that there is not an alternative but if you know another way I am curious to hear from you about that.

Re: Ask HN: Founders who offer free/OS and paid SaaS, how do you manage your code?

#107

Earlier quoted context omitted.

Because you'll end up with lots of "if (user.isPaidUser) {...}"

Well, yeah, but this was just pseudocode to convey the concept that you should solve the problem in code, not by maintaining separate code branches, deployments, etc. One approach would be to have an implementation of FooService for each sku, and code that uses the right one based on the current user/tenant/payment status/etc. This gets into dependency injection, inheritance, and other language/framework specific thi…

Ok this makes sense to me. Bundling feature sets by SKU.

Re: Ask HN: Founders who offer free/OS and paid SaaS, how do you manage your code?

#108
post #9

Plugins! My SaaS version of https://datasette.io is the open source version plus 76 plugins. Almost all of those plugins are themselves open source, with just a few that aren't for features that are unique to the SaaS product - things like showing how much disk space the user has used up already. Here's what that custom plugin looks like, it's pretty thin: https://gist.github.com/simonw/114131fd9c1826f3629cc3b3dcb84.…

That's a very interesting approach! Thanks for sharing.

Re: Ask HN: Founders who offer free/OS and paid SaaS, how do you manage your code?

#109

In a previous well funded startup with a FOSS component that I worked for I designed a set up like this: - 2 git repos, one public, one private - Custom tooling inspired by other existing tools out there like copybara to move commits in a unidirectional flow from the private repo to the public one The private repo had the contents of the OSS repo in a subfolder, and a unidirectional workflow where all commits flowed…

This is great, I think I may go down this path. Thanks for sharing!

Re: Ask HN: Founders who offer free/OS and paid SaaS, how do you manage your code?

#110

1) Do you have two separate codebases for free and paid? No. Sentry has one codebase between free and paid. We have a Django monolith plus some services where all our features are implemented: https://github.com/getsentry/sentry https://github.com/getsentry/relay https://github.com/getsentry/snuba https://github.com/getsentry/vroom etc. We have a Docker Compose wrapper in a separate repo: https://github.com/getsentry…

Oh wow, I'm a Sentry customer and didn't know this! Thanks for sharing!
Post reply on HN