Coin in the Couch
So I've been thinking lately about how I can someday make a living with CouchDb, and one option is to try to build a real software company behind this thing. I'm not at all sure this is the path I want to take, but I'm also thinking about taking some external funding. That of course means I'll need some sort of a business plan, or at least, a revenue model.
Original Business Plan:
1. Build CouchDb.
2. Annouce to world "Look what I did".
3. People send checks for my total awesomeness.
I've been informed many people embark on a similar plan and it hardly ever works. So instead this is what I've come up with:
Give Away the Core
The CouchDb application server with simplified web based IDE. The idea is to make it extremely easy to build form and document based applications, with little development and zero database knowledge necessary.
This part will be open source, probably GPL or some compatible variant. Free to download, free to use, free to host.
Charge for Add-ons
Offline application client host. This is essentially a locally installed Couch application server that integrate with browsers. It allows users to bi-directionally replicate any Couch applications and data for offline use.
Advance server services. Server clustering and/or partioning can be enterprise grade add-ons. Management tools tend to also be a revenue maker.
The Hook
The idea is to let people freely install CouchDb server and create and share custom applications. CouchDb development will be very simple with little coding or planning required. The database is specifically designed for document oriented applications, making document application creation and customization simple enough for average office workers.
Once custom applications are built and put into use, people will have increasing needs for add-ons, like the ability take it offline. Sometimes a user will only be somewhere for a few days where they won't have reliable access, but that alone is often enough to justify the cost of a software license.
And then I got you. Mwahahaha!
Ok, this is just the roughest of business outlines. But I'd like to know what you think. Is this at all a good approach? What will I be in for I decide to look for funding? Should I take on a business partner first? Should I just not go the external funding route at all?
Posted June 20, 2006 12:39 PM
Comments
simple...
tell me,
1. how much (best guess)is the investment
2. how much (%) would you like to have as IRR
2.1 time payable period
3. let see how couchdb looks like (live demo)
4. suggestion: couchdb web service (for true collect)
makerjoe
makerjoe, June 20, 2006 3:27 PM
If you're serious, you should go the "Ruby on Rails" route: come up with a killer app BUILT on CouchDB.
Then it'll sell itself.
Jeff Atwood, June 20, 2006 4:01 PM
1. how much (best guess)is the investment
I think a simple but compelling package can be built in 6 months with the help of a strong web developer. I have some people in mind.
So not much investment necessary, which is why I'm not sure I want to take investments at all. My living expenses are cheap and I can take side work to self-fund the development.
If I can find the right investor/business partner to team up with, I'd rather go that route. But the overhead of taking on investment partners may not make sense.
And I am not sure what qualifies as the right type of investor/business partner, so don't ask. But I'm seen plenty of the wrong type, so I know some things to look out for.
2. how much (%) would you like to have as IRR
2.1 time payable period
I don't know what these things mean. Internal Rate of Return?
3. let see how couchdb looks like (live demo)
4. suggestion: couchdb web service (for true collect)
I plan to have a public alpha released in a few weeks. That version will have a backend REST api, but zero frontend work.
Damien, June 20, 2006 4:12 PM
I would like to know whether CouchDB could also serve as large, distributed, file storage, where those files could be (beside of indexable textfiles) also any kind of blobs such as media files. Comparable to Amazon S3 or MogileFS (which uses a clustered nodes of chep servers insteas of a SAN with RAID). If it serves for this purpose, I would be interested to build a test web app for that (in Erlang).
Roberto, June 20, 2006 6:45 PM
Jeff, I'd love to get ROR kind of buzz, but I'm not actually targeting those types of developers(ie. serious), mostly because they are DYI tightwads who hate to pay for any software (at least in my case). That's why for business purposes I'm targeting really simple application development, because I want to target average knowledge workers who are willing to pay for simpler solutions.
Roberto, yes CouchDb definitely could be used as a distributed file system. It is capable of redundant blob storage like those technologies, but with more advanced querying and reporting facilities.
Damien, June 20, 2006 7:50 PM
@Jeff: Software does not "sell itself". It would be a huge mistake for Damien to assume CouchDB will just fly off the shelves.
@Damien: I think you should only take on a partner/investor if/when you need one. IMHO this will be when you want to scale the business up quickly (eg build a support team or embark on an expensive marketing campaign). If you don't need someone elses money, don't take it. With the money comes obligations to investors whose needs are not the same as yours.
Brendon, June 20, 2006 11:23 PM
I for myself don't have a clue about business plans but I do love the "Give away the core" part.
Ralph, June 21, 2006 8:03 AM
I don't think offline is your winner. To be trite about it, it's "too '90s". Offline access is becoming increasinly unnecessary as connectivity becomes increasinly more ubiquitous. More importantly, every single laptop theft incident that hits the media is contributing to what I believe will be ever increasing skepticism about the wisdom of any off-line storage. The public hears about the SSNs, but data owners everywhere are thinking "I wonder what proprietary info was also on that laptop". Even Notes, with its long history of off-line storage, strong two factor authentication and local encryption capabilities, is vulnerable in most practical cases. So unless you add the words "really practical and idiot-proof secure" to "offline" I just wouldn't count on it being a sustainable way to make money off couchdb.
The first thing you need to do -- and this really applies to the formation of any business plan for anything -- is to ask and answer the question: "Who are my customers, and what do they value?" Work on defining that very carefully and in narrow terms. A very rought starting cut at the first part of the question might be "people who could be Lotus Notes customers, but who don't know it, or who won't or can't use Lotus Notes", but even if think that's accurate on the face of it, it's pnot narrow enough. E.g., it doesn't specify whether you are you selling to the end-users or the developers; and when you get to the second part of the question you'd have to deal with the fact that despite having a lot of share interests the end-users and developers place different values on different things. You might be able to address both sets of values, but you'd be better off planning to address just one.
Richard Schwartz, June 21, 2006 8:07 AM
Do like apache.jakarta, openSymphony, codehaus or some such:
Build a nice website with information for users and possible co-developers.
As you have no marketing budget, it might be even more important to offer clear statements about the business goals of ur product, good documentation, convincing quick-start_tutorials, etc.
Never in my lifetime I'll start such an endevour, but I think at this phase real persons who actually seriously try to use your product should be of high value. Try hard to take them serious.
Axel, June 21, 2006 8:15 AM
Have you taken a look at the apache lucene project? I've used the ferret engine which is a port to ruby, and from what I gather on your wiki page it seems to offer a similar type of service. This is a lower level library rather than a DBMS like you seem to be shooting for, but the power of the query system is pretty impressive, and it could probably be wrapped to work and feel like you want couchdb... Worth a look if you haven't seen it.
Jeff, June 21, 2006 8:37 AM
Since the core would be open sourced and freely available, wouldn't anyone be able to develop add-ons and give them away for free? This would mean users could choose to use the free add-ons and not pay for yours.
marv, June 21, 2006 10:17 AM
Offline access is becoming increasinly unnecessary as connectivity becomes increasinly more ubiquitous
I've been hearing for literally 10 years "offline will cease to matter soon". But it still matters, and I don't see that stopping anytime in the near future. Certainly it's decreased in importance, but its 2006 and I still go places all the time where I don't have reliable internet access. Even if in the US we somehow get reliable always-on internet available anywhere, what about the rest of the developing world? How long before India and China are also fully connected?
My house has cable modem access, but it occasionally goes out. How many users and business have a permanent, but unreliable connection to the internet? In many places, internet access is sporadic and unreliable, but business must continue on.
I think the demand for offline applications will actually go up, not down. Because while we are more connected than ever before, in the world there is still a growing base of users who need will offline access. The world is a big place.
Also, the larger a company, the more likely someone important will need offline access to key applications at some point. Even it only a very small percentage of their total users, if they are key in the organization, their needs can drive technology decisions for the rest of the organization.
Damien, June 21, 2006 10:26 AM
Jeff, the Lucene stuff is a text search engine, which I definitely will need to integrate at somepoint, but fundamentally it's a different query paradigm than what I'm building.
wouldn't anyone be able to develop add-ons and give them away for free?
Of course they could. But the same is true for any software, open source or not.
Damien, June 21, 2006 10:44 AM
How to build stuff and GET paid for it...
that is all about!
quote
So not much investment necessary, which is why I'm not sure I want to take investments at all. My living expenses are cheap and I can take side work to self-fund the development.
- real world projects need investments.
i learned that garage's homeworksoftwarebuilding were good for the 80's & 90's where everything was to be invented from few talent people
? who will support couchdb when it become the best approach for document oriented databases
-2. how much (%) would you like to have as IRR
2.1 time payable period
I don't know what these things mean. Internal Rate of Return?
yes,
dont forget that in any project-idea the most important thing is to be sure about the collect and where to put the revenues when they exist
4. suggestion: couchdb web service (for true collect)
I plan to have a public alpha released in a few weeks. That version will have a backend REST api, but zero frontend work.
zero frontend work.
that is the clue. the only clue ....
the success? doing something real different and keeping it simple, and in a safe place like cocacola's formula
nothing else and think very carefully about it
makerjoe
makerjoe, June 21, 2006 2:18 PM
You should put together a business plan whether or not you seek outside funding. It will help focus what you want to achieve and how you plan to do it. It will also help you get some good feedback. Read it to some non-techie business person. If they don't understand WTF you are talking about, you might want to modify your plan. This is, after all, basically a business application.
Brendon was right: software doesn't sell itself. It's hard to give away useful software (look at the program stats on sourceforge for less popular programs). You are not selling software; you are selling a solution to a problem and the assurance that you will be around to help the business grow the solution as their problem grows. If you can't figure out how to show that you will do those two things, you are probably not going to make it very far.
Chris B, June 21, 2006 8:37 PM
Hi Damien,
> How long before India and China are also fully connected?
At least for people and places where internet matters to businesses - not very long. In fact it has already happened in cities. Internet connection is ubiquitous in Bangalore, India, where I live.
Having said that, I find your idea to make money off offline access priviledge pretty good in its own right but, I would advice to look for other ways too. Don't just bank on this one avenue.
BTW, read this if you haven't: http://avc.blogs.com/a_vc/2006/03/my_favorite_bus.html
(with follow up: http://avc.blogs.com/a_vc/2006/03/the_freemium_bu.html)
Wish you all the best.
Amit, June 24, 2006 9:05 AM
foo
Anonymous, June 25, 2006 4:47 PM
Have you considered what IBM might think about you making money from CouchDB since "the storage model resembles NSF, the computed table indexing/reporting facility resembles NIF, and the Fabric formula query language is similar to Notes Formula Language". I'm not trying to be an alarmist but given that you worked on Notes and had access to all of its source code, a potential investor would likely ask the same question.
Bob, June 26, 2006 5:36 AM
Hi Damien,
In my experience over the years, every killer app was not designed as a killer app, it just happened. Every app designed to be a "killer app" has failed. So I think your approach of "design the engine and let the apps come to it" is a good one.
Looking at Bob's post, I'm inclined to think that your offering needs to be sufficiently different to Notes so that IBM can't get upset about it. Breaking out the indexes into a secondary file and changing the way that indexes are managed, then moving the design to a design file would probably do that (I suspect). Also it would speed up access significantly with decent pointers and indexes. Notes came from a time when 40 file handles opened simultaneously were a challenge. That has changed and so should how we develop applications and database servers. Consider that 16 bit dBase with a Client Server front end driver was up to 20 times faster than 32 bit SQL databases on the same hardware! Pause for thought.
I also had the online/offline issue this weekend. I was flying from Stockholm to Glasgow via Amsterdam. Basically I was going to have to pay for three completely different wireless networks and maintain 3 different accounts to get my pervasive access. Offline is here and now. Pervasive, cheap/free, effective networks from a single global provider are another 15 to 20 years away. So offline is what we have when we travel. And as we all know, the people who travel for business are the one's who understand the price point value of products that enable them.
From a product point of view, you will need to create it. Then generate a market for it (marketing costs and free evaluations). Then productionise it to the point that anyone can install/use it. You will need to encourage a developer community for it (more marketing), and also a support community for it. All the things that large and small software products have today.
You are going to have to transition it from "hobbyist" to real world computing solution software. Not only in the product but in the minds of the prospective customers. More marketing, trade show demos (remembering that CouchDb will cross OS and platform lines so you need to be at multiple shows).
This will take 2-3 years I suspect. Then you will have to grow the user base to the point that the revenues can support both you and the team behind you required to make CouchDb a success (more marketing and schmoozing). Along the way, hopefully, your developer community will have produced a whole raft of products hosted on CouchDb which will be “simply irresistible”….. Another 2 years or so.
About this time there will be a market for CouchDb support as the community grows and expands. Given that enterprises are using CouchDb, they will want solid support contracts. Think Groove networks and how they slid sideways into the corporate space. Think of how Ray achieved it (or ask him). Your own products should now be beginning to generate pretty solid revenue and support contracts should become lucrative. Another 2 years gone.
About this time you will need to really think about where the product is going and how you are going to grow it to at truly competitive product in the Global marketplace. This will take significant funding and investment capital. Hopefully around that time you will have enough of a business to only hive off a small stake in the company for that capital injection. Around another 3 years and your 10 year plan will be complete. You should be the exec of a solid software company with capital and solid revenues. Ready for the commitment?
Then of course, WinFS comes out in around 18 months time. Everyone can laugh about it, but in fact it is designed from the ground up to be an “object store” and not a database. A real competitor to NSF and CouchDb. You will have to do all the above with an aggressive competitor nipping at you heels. Your best defence will be the interface and the developer community.
Sorry to finish on a down in this, however I like to be a realist in what I do. I leave the dreaming for when I travel :-). I think it is a good idea and I think the market is actually gagging for this kind of data storage technology. Something which doesn’t need 3 months of analysis or 6 weeks of database build or the loving ministrations of a Database administrator who wants to control your data use life.
There is an opportunity here to take the ideals of the NSF engine, turn them into a blisteringly fast object db engine and front end them with a simple to use and manage designer client and user client.
Something Notes/Domino should have been 6 years ago.
I’m told you have all the skills and the brilliance to do the job. Go for it! But it is a real thought isn’t it? Very lonely out there in the DB space with lots of very large grey competitors with very large teeth.
NeilT, June 26, 2006 7:36 AM
given that you worked on Notes and had access to all of its source code, a potential investor would likely ask the same question.
Yeah, its something I've thought a little about and really I think I'm safe. While CouchDb shares high level concepts with Notes, the internals are completely different in design and implementation. NIF and NSF take very different approaches to disk layouts, concurrency and fundamental things like database shutdown and startup (with noticably different characteristics). Even the Notes Formula engine, which I designed and wrote myself, works very differently from the Fabric engine on the inside.
So no, IBM can not in any way claim any ownership or rights to any of CouchDb technology. It's 100% my own designs and I've written every single line myself. They wouldn't have a legal leg to stand on.
Damien, June 26, 2006 8:34 AM
Excellent comment NeilT. Thanks.
I agree with you about creating a community around the project. I haven't spent much real effort on it yet, once I start putting out the public builds its going to be a top priority. However, I am spending a lot of time thinking about how we can cultivate a healthy community, and fortunately I know a lot outstanding Notes/Domino professionals who already want to be a part of this. I recognize this software, to be successful, needs very much an active community around it.
While the long term prospects you write about are intriguing, I can't say I have any clue what's going to happen next week, much less the next ten years. But I generally like the picture you paint!
Damien, June 26, 2006 9:30 AM
On a thread called "Big Erlang Web solution" in Erlang Mailing, people wew talking for distributed filesystem / DB as web backend data storage. I mentioned CouchDB. I think there is quite bit of demand for such a thing and many people interested to participate in a developer community.
I have some more questions: Is CouchDB (just the engine, without frontend) somehow tied to Lotus/Notes/Domino ? I hope it's just a pure Erlang app with embedded yaws for serving the data over HTTP. And does the data also come "raw" or just encapsulatd in a REST envelope ? I am thinking of serving static files from CouchDB based on redirects in my yaaws web-app and if data is only available inside an XML envelope, that would not be possible
And a thought about monetizing options: I personally think you should provide the corre engine open source and a liberal license (I mean, more liberal than GPL), and try to monetize on anything which has a GUI and nice graphics. Look at Java developers. The only thing where many prefer an non-free solution is the IDEA IDE. Look at RubyOnRails developers. The only thing they are happy to spent money on is an expensive apple mac to run TextMate Editor (thats a commercial app) on it.
Roberto, June 26, 2006 11:24 AM
Is CouchDB (just the engine, without frontend) somehow tied to Lotus/Notes/Domino ?
Not at all, it's a completely new codebase with 0 ties to Notes or Domino. (though I see interesting possibilties in integrating the two)
I hope it's just a pure Erlang app with embedded yaws for serving the data over HTTP.
The integrated Fabric formula engine is written in C++, so its a not a pure Erlang app. However it is possible to write queries and table definitions in Erlang rather than Fabric.
And does the data also come "raw" or just encapsulatd in a REST envelope ?
Couch documents are be converted to XML representations by the HTTP layer of Couch server. Anything that can parse XML should find the documents easy to deal with.
And I definitely agree with you about giving away the core. Developers generally don't buy technology, they use it. Especially nowadays with the some much free open source, it is very hard to get developers to part with real cash. All the big database vendors, all the big dev tool makers give away the cores of their product (MS can't give away all their tools because of anti-trust, but they do make everything pretty much dirt cheap) to help drive demand for the rest of their products. So the only way I see to "sell" the core server would be to have old fashioned salesmen who sell it to enterprises with big lead times for big $$$$. That is a grind and it takes capital to make it work and I think its a dying model anyway.
Damien, June 26, 2006 11:57 AM
Damien, thanks for the answers. If all CouchDB documents are conerted to XML before being served, then it looks to me as CoucbDb is more suited to serve non-binary data, than serving actual files (sch as images, video, or whatever). Or am I missing something ? Probably the overhead is just marginal. What I am wondering is how well and performant works CouchDB as yaws data storage (should be better scalable than mnesia, but not hopefully not much slower than real static files)
Roberto, June 26, 2006 12:39 PM
Sorry, what we have is a confusion of terminology!
I mean documents to be "couch documents". A couch document contains various fields, and can contain binary streams (files) and meta data about the binary streams.
So if you wanted to use CouchDb as a distributed file store, then you would have 1 document per file. The document would contain the relevant meta-data about the file (filename, created date, summary, etc), and that meta-data is what would be used to generated the computed tables and query the database. (although a full text index on the contents of file streams is also planned, but that's a separate query facility)
So the web interface for the "couch documents" will be XML, but for attached files the raw file data will be available at separate URIs. Then the actual file contents can be streamed out in binary or encoded form.
Damien, June 26, 2006 12:57 PM
Damien, thanks very much for the clarification, look forward to get my hands on it ...
Roberto, June 26, 2006 2:44 PM
If you're seriously considering it, you should read Guy Kawasaki's "The art of the start":
http://www.amazon.com/gp/product/1591840562/002-1513710-4430436?v=glance&n=283155
I work at a start up and my boss just told me how much useful stuff was in that book.
His blog is interesting, but not as detailed of course:
http://blog.guykawasaki.com/
Chris Pearce, June 28, 2006 5:54 AM
give away the lot (GPL) encourage a huge services based development community around the product then host an annual conference in Orlando charging a reasonable conference fee, of which you pocket a sizeable chunk. Maybe call it Katzphere.
Alan Bell, July 10, 2006 4:40 PM
Post a comment