All about the Community Platform
In this Blog post I'd like to say a few different things about the community platform: first of all, I would like to detail the technology underlying the platform, as well as how you can help contribute to it; secondly, I would like to explore possibilities for its future, and give a bit of information on its historical background; finally, I would like to explain a few of the business decisions behind its conception.
What is the Community Platform?
The idea of a Community Platform first came along when we set up our XMPP server. It was the first time that we had our own list of users, fans and people who liked DuckDuckGo. We set up a web service where they can help us translate DuckDuckGo into different languages.
What do we have planned for the future?
First and foremost, we want to continue concentrating on the translation interface, adding more capabilities in order to let the user further help us manage the translations. This needs to be a rapid process, as DuckDuckGo is rapidly growing and adding new features—features that we want to see translated into all languages as quickly as possible. Very tight coordination with the community will be required, as well as a notification method. Furthermore, the voting mechanic needs to be improved upon—people voted for bad translations though a lack of better ones. This is not very helpful :). We have already started to fine-tune the quality of translation by writing a very detailed manual regarding our translation infrastructure.
After this, we will need to add more features which will involve users in our process of spreading and extending DuckDuckGo. We want to build a custom plugin management system, which will allow for a more detailed overview of the existing plugin projects, as well as upcoming ones. It will allow us to have several people, even non-programmers, aid with the process of increasing DuckDuckGo’s functionality. The ability to manage user groups and coordinate the effort of spreading DuckDuckGo will also be key.
The final point on our agenda is the integration of the (currently) outsourced Forum into our existing infrastructure. We want to allow the user to have a unified account to use for all of DuckDuckGo’s community services.
What is the technology behind the community platform?
One of the primary goals of the community platform is to be 100% open source. We try to write most parts inPerl, because this is the main language used for most of DuckDuckGo, but, of course, we always use the technology which best befits the task. Our XMPP server is Prosody, which is written in Lua and we use nginx as our webserver. The servers are running on Amazon's EC2 services with RightScale Debian images. The Perl web framework we use is the Catalyst Web Framework.
How can you help us?
There are several ways in which you can help: new features for the Community Platform need several levels of engagement—for example, we need people pitching ideas for the user interface, the design of special elements,. Providing a bit of code is always welcome, of course! :). All of the various elements are linked, parts of an overarching whole, and contributing in any of the aforementioned ways will help contribute to the project on the whole. Spreading DuckDuckGo and finding ways to help people spread DuckDuckGo is of course part of the Community Platform, and we will offer more and more features to that end in the near future. We hope to offer more very easy ways in which you can help in the near future :).