After 5 months of releasing a big product as an open source project I want to write about the progress, the goods, the bads, and share the future releases of djondb.
I've been working on djondb for a year, it started as a proof of concept, a learning project and a challenge, rapidly it grew to a running version of a server and I started to wonder if there was space for a new NoSQL database, and here's the video of the speech I gave at BogoDev in 2012
Although it was a living thing it was far from been a production server. After this speech I realized that there was a lot of people with the same requirements, a NoSQL database that can store JSON, ensure everything goes to disk and not into "lose-able" memory, and been able to handle transactions over multiple documents. Last, but not least, been able to run it in Linux, OSX and Windows.
Several tasks were required to be completed once the MVP was a real application:
- Create an stable full minimal featured release (Insert, Updates, Deletes, Find with meaningful queries, etc)
- Implement drivers for most common languages.
- Document all the features
- Create samples
- Installers for each platform
- Drink couple of beers! (this was started even before the first line of code)
The first version of all the features was released a couple of months later, and djondb was open sourced in github since September 2012.
I almost remember the face of my wife once I told her that I will put the code as open source, "Is he crazy?, he is doing this great product and he will give it away?", but I was completely sure that was the best choice, here is the list of the reasons to go to this path:
- Give something to the world. I'm using open source tools so seems fair enough to give something back.
- An open source is easier to promote, mainly because Open source promotes itself, the advocates of open source push this kind of developments to keep them going.
- Some developers might join the development team and we will share the glory, and the money that could come with this solution.
- Been open source the community will help with feedback, samples, document translation, etc.
In November I did the first "official" speech about djondb in Colombia 3.0, one of the biggest Content Summit of Latin America, here's the video:
After this I've been working on drivers, documentation, new features, bug fixing, etc. And released the version 0.2, which had several performance improvements.
During the latest months I've been working on new features that are going to be released at the end of March.
djondb brough a lot of learning, not only about coding databases, or high performance systems, but on how the Open source ecosystem works, what means to be an Entrepreneur (I'm still learning, and I think I will never stop learning), what traction is, what an investor sees, etc.
djondb has been a very successful project, more than 350 downloads during the last three months and a lot of great reviews. Some good projects are already using it, and people really share the same though of NoSQL as a profesional tool to develop business applications.
Not everything is nice
Although I've been working every night to improve and release a better product, it's very disappointing to realize that Open source is not what I thought it will be, it's not a great community trying to help out, sharing ideas or helping with spreading the word, it's more like a bunch of guys (like me), working really hard to share a dream with bare hands and passion. Most of the histories I read everyday about lone riders that try to create open source is just like mine, working hard and getting few or none feedback, just a lot of downloads.
Lessons I learnt from the open source, maybe I'm wrong and it's only my perception, but this is what I think:
- Most people think open source means free, they don't even think that feedback or test is a way to share and help.
- Investors put weird face when you say "Open source", unless you already show that there's a lot of traction. And I mean huge traction, not the kind you would need if you "own" the code.
- Other developers look at the open source as a way to get their projects done without paying anything. (there're several ways to give back in the open source, like feedback, helping documentation, maybe fixing a bug or two, etc)
Don't go with the open source option if you don't have a company that supports you. Open source will mean that you put all your ideas on the web and almost anyone can copy you and create their own product without any responsibility, I know... you could argue that you can show you posted the code first, etc etc. (If you argue that you could patent your code let me remind you that procedure costs U$35.000 and takes 5 years to be approved). The truth is that you can not protect your idea as open source, you gave away your knowledge and you won't get anything back.