I'm Kirill Markin, and my co-founder is Nikolay Amiantov. We've been working on our CRM/ERP product since 2017 and even have paying customers. But our growth is slow, and that's not exciting. We want to create something bigger for more people to use, and open-sourcing is something that both resonates with us and is a way to attract a community.
Our codebase is 38k LoC of F# (including a compiler for our own query language) and 35k LoC of TypeScript + Vue.js. While we prepare the code we have been reaching out to Zoho and ODOO integrators/developers (as they’re our closest competitors), from whom we got a lot of positive feedback.
Our biggest hurdle is figuring out the best way to take the next steps. Does anyone have any ideas on how to launch such a large codebase on GitHub to get maximum visibility? Suggestions on building a community around our open-source product, organizing further work, or any other pieces of advice are welcome.
This is completely at odds with growing an open source community. Its typically one of the slowest and most thankless jobs you can do in software. nix has been around for 10+ years and only recently are normies like me becoming interested in it.
Your product sounds like its niche, making it open source and getting other developers to contribute sounds like trying to grow a niche within a niche. Add F# and there might be like 5 people in the whole world who might care about your open source project.
Im sure your integration partners say they would like your project to be open source but they arent going to be doing ANY of the work.
I would sell your business as a turn key.
1. Is your target customer a software developer? It seems like your customer would be a executive, perhaps at a smaller business. You want to get that person's attention. I think open-sourcing is more likely to get developer attention.
2. There are lots of other marketing strategies you could try (content-based marketing, going to tradeshows, cold calling, etc).
3. If you have existing customers, I think you really need to work with them on in-depth case studies that explain why they benefited from choosing your solution. You should also see if you can market to other, similar customers.
4. "customizable by any developer" - That developer should be you. This I have personal experience with. We initially delivered a product and left it to the customer to configure. Later, we discovered that customizing the product for the customer delivered better results, better relationships, and allowed us to learn about our own product and our customers.
Anyway, I would do a lot of sales/marketing brainstorming before I open sourced. It seems you see it as a marketing strategy, but I think you should consider other avenues first. Good luck!
As for the front-end I think MIT or even GPL type of licenses make more sense, since everyone can just view that code anyway.
I would consider what kind of licensing you want to do, I would also consider goals in doing this. One huge benefit of an open source SaaS offering is the freedom to take control of what you're getting out of it in-house, or going straight to the vendor.
Will you be offering migration to and from your SaaS service? These are all key things you need to put front and center. Definitely consider what kind of license you want to use, very important.
The way something is licensed makes a big difference.
.NET and Visual Studio Code are both MIT licensed, which is why any time someone cries about "its microsoft they're just gonna take it proprietary" I point out that the MIT is the least restrictive license you could use aside from just public domain, and it makes their point moot.
As for building a community, definitely make a Discord and a forum, places people can come together and get help publicly, figure out how to get a stackoverflow space for it as well.
lol, maybe you could go back in time and add some value with Blockchain or Big Data too!
Is your business profitable? Maybe a small sustainable business isn’t exciting to someone who is seeking a moonshot but it seems like you’re looking for recognition and business fame rather than actually solving customers’ problems.
In my opinion, open sourcing your product won’t magically make it more attractive to more people. It sounds like it already only fits a small niche and that’s probably fine.
If you want it to help more customers I would evaluate your product market fit as well as your marketing efforts first. Have you maxed out your addressable market or do you need more effective marketing, pricing, or something else? Is there enough business pain to justify the existence of your product?
Open source won’t really help you solve those things, it’s just a code license. In my opinion, customers of CRM/ERP products don’t really care about whether the code is open source, they care about whether the product solves their business pain, lowers costs/risks, increases productivity. E.g., if we open sourced AOL instant messenger that wouldn’t make it a more popular product than Discord.
A lot of community building comes down to trust, whether you are developing a commercial or open source platform. As a customer and integrator/consultant/developer, I want to know that the platform is going to be around and supported. The bigger my company the higher the risk is.
Open sourcing your software sends signals to your customers and partners. Some will see it as a last ditch effort to make it successful, with the flip side being that if it doesn't happen, you're won't be maintaining it anymore. Will that make them more or less likely to use your software/help build your community?
So in your messaging you should be very clear in what you want to achieve, and how you plan to build a successful business around an open source or open core model, and how the others companies fit into this. How will you respond if another company takes your code and does the exact same thing you're trying to monetize, only better? Etc.
You should also be careful about positive feedback. Most people like to be nice and supportive, and won't say negative things. The only way to know whether you'll have success there is to see actual commitment (in money or work spent) with your product.
Finally as others have said, you shouldn't expect automatic success/community by open sourcing the code. You might end up attracting the sort of customers / developers that have the least incentive to contribute or pay for additional services, unless you go find those yourself.
One good case study is Maybe Finance. It was a dead project. They open sourced it. And it went viral. And they raised $1.5m within another few weeks. The virality was on GitHub stars and Twitter.
I run a channel about open source that may give you ideas of what other COSS projects are doing: https://youtube.com/elie2222
My COSS is called Inbox Zero: https://getinboxzero.com.
I think you're looking with the wrong lenses here. Open sourcing targets the wrong audience, and F# is such a niche language that you'll probably have zero traction, especially in a space like CRM/ERP, which has well established open source solutions like Odoo.
If you want to grow, start to focus on your GTM strategy. You can obviously build a product, and your customers are a testament that you have, at least, some PMF. Do outbound sales -- this space is clearly one that you can afford that --, and invest in marketing. Your website desperately needs some professional work there.
1. Link everything together. If I'm on your github it should be obvious how I can get to your discord/slack/website/forum and vice versa, don't make me work for it.
2. Build a regular rhythm to your comms/emails etc. If people opt-in to hearing from you, you need to hold up your end of the deal and commit to regular, quality updates. This will become the heartbeat of the community.
3. Pick 1 or 2 'brand' assets. Try to make them distinct, and then use them consistently everywhere. Your logo is probably a good one, but some kind of color combination/sound/flair should be distinctively you. Use these assets everywhere so that it becomes a visual shortcut in people's brains.
Ultimately, keep it simple, and just start. Don't overthink everything, you can always pivot and change as you move forward.
What goal are you trying to achieve?
But I mainly wanted to comment and say I started learning F# recently getting a bit into Elmish and think F# is a pragmatic language and would love to learn more but there is a lack of large F# codebases to learn from. So would be interested in taking a peek at how one would construct a large F# codebase targeting the enterprise if this does ever get released.
I can link you up with a global payment processing fintech. Mid market/smb ERp and CRM are being commoditized. The fintech works with these cominies to bolt on the payment opportunity on the AR and AP side. For example a $10m year biz represents $10-$18m in payments. I.E., about a $100 to $200k profit oppty - recurring.
Open sourcing is a good idea - it allows for platform innovation and adoption - while regulated services becomes the profit driver.
I think most of website design/copy is about creating the appearance of being legitimate, but that is difficult without being culturally native.
Why not try marketing to actual customers in their own language(s)?
I don't think there any downsides to open-sourcing, but probably no up-sides either.
But the most important thing is, by reading your current mood with the project, open sourcing it will give your integrators the possibility of continuing using it when you totally stop caring about it.
Open sourcing for the sake of generating buzz in hopes of more sales ?
Isn't by open sourcing you remove that option to pay you?
What would somebody do with 38k lines of code that captures tech debt/esoteric workflows?
Open sourcing as a strategy works when there is a lot of developer interest and (usually) a developer is the beneficiary of the software (that doesn't mean the developer is the end user, but take WordPress, even if it's used by a lot of marketers for websites, it is developers who are the ones using it to produce those websites).
If your product is CRM/ERP, is there a lot of developer involvement in the provision of the software? And if not, what is the enabling factor for your beneficiaries to be able to take a FOSS package and begin to realize value? Don't confuse positive feedback of "this is cool" etc with positive feedback from buyers and beneficiaries.
FOSS B2B software communities work when there is value in not using the commercial version. Why would anyone who needs a CRM/ERP want to use a FOSS product when they would have budget to buy a commercial version and gain commercial support. I would assert that all users of CRM/ERP software have budget - unfortunately they just don't want to spend it on your product and so why would they then want to take the same product for free instead?
I think you need to have a clear reassessment of why your business is where it is (where it isn't) and what would change that. Not sure that open sourcing solves that. Good luck.