- Free software licensed :)
- multiple owner-defined store fronts to the same (or different) bodies of hosted content thanks to a tag-based metadata system
- able to federate external content (a feature set I expect will evolve significantly over time)
- good for books, music, services, artwork, etc. as well as for applications; essentially any content or artifact that can be delivered over the network works just fine (which is why we don't call it an "app store")
- built-in purchasing system using a points mechanism which can be tied to monetary purchases (swipe integration is included), gift cards or pretty much any other system you can think of (e.g. in a school environment students could earn points through their performance in class)
The client side currently consists of a C++ library (dependencies: QtCore, QtNetwork and QJSON), plugins to handle installation of downloaded assets (some of which use KDE technologies like Nepomuk) and a UI written in QML that uses Plasma Components and a variety of KDE libraries. It's easy to understand why the bodega-client repository can be called a KDE Project: it uses lots of KDE libraries, integrates rather beautifully with the Plasma workspaces and the development community is well integrated with the larger KDE community.
But what about the server? It has no user interface; it doesn't use any KDE libraries, or even Qt for that matter. Instead it is built with node.js, PostgreSQL and Redis, none of which are particularly "KDE". Does this server-side code, in its own self-contained repository, make a good candidate to be a KDE Project?
We can start by looking at its relevance to KDE's goals. The bodega server was designed with devices running a KDE workspace, such as Plasma Active, in mind. Indeed, this is what powers the Add Ons application in Plasma Active 3. Since it is general purpose software, it can be used for all sorts of things, but integration with KDE software has been the development team's primary motivation. So the focus seems relevant to KDE, but is that enough to consider it for inclusion as a KDE Project?
The KDE Manifesto helps us here as we can use it to check if the foundational principles of KDE are found in this project. These principles are: Open Governance, Free Software, Inclusivity, Innovation, Common Ownership and End-user Focus. Without going into point-by-point details, bodega-server ticks all those boxes.
What about the commitments? There is no Contributor License Agreement to sign; the repository is open so all KDE contributor accounts are able to participate; the project already uses KDE infrastructure; trademarks and copyrights are in order; established KDE community principles are being followed (such as going through kdereview), etc.
With the Manifesto in hand, we can see that it is a reasonable candidate for becoming a KDE Project because it matches the focus, principles and the goals of KDE. Prior to the Manifesto, it was a lot harder to identify if something like Bodega ought to belong under the KDE umbrella. Other server-side projects struggled with this exact issue in the past, at times with rather unfortunate consequences.
Now it is quite straight-forward; we simply have to ask, "Does it push forward KDE's technical agenda, and does it meet KDE's documented principles and commitments?"