{"id":79822,"date":"2026-07-06T19:01:48","date_gmt":"2026-07-06T19:01:48","guid":{"rendered":"https:\/\/owncloud.com\/?p=79822"},"modified":"2026-07-06T19:01:48","modified_gmt":"2026-07-06T19:01:48","slug":"the-new-owncloud-marketplace-git-is-the-app-store","status":"publish","type":"post","link":"https:\/\/owncloud.com\/de\/blogs\/the-new-owncloud-marketplace-git-is-the-app-store\/","title":{"rendered":"The New ownCloud Marketplace: Git Is the App Store"},"content":{"rendered":"<h3>42 Apps, 13 Web Extensions, No Backend<\/h3>\n<p>The old ownCloud marketplace had a backend. A database. A server. An admin interface. Infrastructure to maintain, dependencies to patch, and a single point of failure between a publisher and the people who wanted their app.<\/p>\n<p>The new one has none of that.<\/p>\n<p><a href=\"https:\/\/marketplace.owncloud.com\">marketplace.owncloud.com<\/a> is live with (as of this publication) 42 apps, 324 releases, 36 publishers, and 8 categories, along with 13 web extensions (and growing!).<br \/>\nAll with no backend, no database, and no server-side processing of any kind. The Git repository is the source of truth. The catalogue is static JSON. Publishing an app is a pull request.<\/p>\n<h3>How It Works<\/h3>\n<p>The marketplace is a static site backed by a public GitHub repository at <a href=\"https:\/\/github.com\/owncloud\/marketplace\" target=\"_blank\" rel=\"noopener\">github.com\/owncloud\/marketplace<\/a>. Every app in the catalogue is a structured entry in that repository. Every release is versioned in Git. Every update goes through a PR.<\/p>\n<p>To publish an app, you submit a pull request using the template at .github\/pull_request_template.md. The review happens on GitHub. The merge lands the app in the catalogue. The static site regenerates. Done.<\/p>\n<p>This is the same contribution model as everything else we&#8217;ve built under the <a href=\"https:\/\/owncloud.com\/blogs\/kiteworks-launches-the-owncloud-open-source-program-office\/\">OSPO<\/a>: code goes through Git, review happens in the open, there is no hidden approval process or privileged backdoor. The marketplace is auditable the same way the software it distributes is auditable.<\/p>\n<p>The security properties follow from the architecture. A backend-free static site has a dramatically smaller attack surface than a traditional app store. No server to compromise. No database to exfiltrate. No session tokens to steal.<\/p>\n<h3>Two Platforms, One Catalogue<\/h3>\n<p>The marketplace covers both platforms. The <a href=\"https:\/\/marketplace.owncloud.com\/#catalog\"><strong>Apps<\/strong> <\/a>section lists extensions for <strong>ownCloud Classic<\/strong> \u2014 42 apps spanning:<\/p>\n<ul>\n<li>tools,<\/li>\n<li>productivity,<\/li>\n<li>multimedia,<\/li>\n<li>files,<\/li>\n<li>integration,<\/li>\n<li>security,<\/li>\n<li>collaboration, and<\/li>\n<li><\/li>\n<\/ul>\n<p>The <a href=\"https:\/\/marketplace.owncloud.com\/extensions\"><strong>Web Extensions<\/strong><\/a> section is where <strong>oCIS extensions<\/strong> live\u2014 including everything from our internal AI sprint this week:<\/p>\n<ul>\n<li>Document Summary Extension<\/li>\n<li>Version Changelog Extension<\/li>\n<li>Image Alt Text Generator<\/li>\n<li>Chat-with-File Extension<\/li>\n<\/ul>\n<p>All discoverable by any oCIS administrator looking to extend their deployment.<\/p>\n<h3>What&#8217;s in the Catalogue<\/h3>\n<p>42 apps across 8 categories. A sample:<\/p>\n<ul>\n<li><strong>Security:<\/strong> <a href=\"https:\/\/marketplace.owncloud.com\/apps\/e2eeshare\">E2EE File Sharing <\/a>(client-side AES\/RSA encryption), <a href=\"https:\/\/marketplace.owncloud.com\/apps\/duo\">Duo Two-Factor Provider<\/a>, <a href=\"https:\/\/marketplace.owncloud.com\/apps\/checksum\">Checksum<\/a><\/li>\n<li><strong>Collaboration:<\/strong> <a href=\"https:\/\/marketplace.owncloud.com\/apps\/federatedgroups\">FederatedGroups<\/a> (cross-instance group sharing via SCIM, built for SURF), <a href=\"https:\/\/marketplace.owncloud.com\/apps\/carnet\">Carnet<\/a><\/li>\n<li><strong>Files:<\/strong> <a href=\"https:\/\/marketplace.owncloud.com\/apps\/extract\">Extract <\/a>(archive unpacking \u2014 zip, rar, tar, 7z, bzip2), <a href=\"https:\/\/marketplace.owncloud.com\/apps\/files_opds\">OPDS Catalog<\/a>, <a href=\"https:\/\/marketplace.owncloud.com\/apps\/files_reader\">Reader <\/a>(ePub\/PDF\/CBZ)<\/li>\n<li><strong>Tools:<\/strong> <a href=\"https:\/\/marketplace.owncloud.com\/apps\/gpxedit\">GpxEdit<\/a>, <a href=\"https:\/\/marketplace.owncloud.com\/apps\/bplog\">Blood Pressure Log<\/a>, <a href=\"https:\/\/marketplace.owncloud.com\/apps\/files_3dviewer\">3D File Viewer<\/a>, <a href=\"https:\/\/marketplace.owncloud.com\/apps\/bookmarks\">Bookmarks<\/a><\/li>\n<\/ul>\n<p>36 publishers ranging from individual contributors to organisations like epiKshare GmbH, Afterlogic Corp., and ownCloud itself.<\/p>\n<h3>Publishing Is a PR<\/h3>\n<p>Fork, fill in the template, submit the PR. The template is at <a href=\"https:\/\/github.com\/owncloud\/marketplace\/blob\/main\/.github\/pull_request_template.md\" target=\"_blank\" rel=\"noopener\">github.com\/owncloud\/marketplace\/blob\/main\/.github\/pull_request_template.md<\/a>. Review happens on GitHub, in public, with a permanent record.<\/p>\n<h3>Why Architecture Is a Political Statement<\/h3>\n<p>A marketplace with a proprietary backend is a marketplace where the operator decides who publishes \u2014 sometimes with undocumented approval processes and no permanent record of decisions.<\/p>\n<p>A marketplace where the repository is the catalogue and the PR is the submission process is a different kind of institution. The rules are the contribution guidelines. The review is the PR review. The record is the git log. We can still reject apps that don&#8217;t meet quality standards \u2014 but the criteria are public and the decisions are visible.<\/p>\n<p>This is what it means to run a marketplace as an OSPO, not as a product team. The governance model extends to the distribution channel.<\/p>\n<p>Links:<\/p>\n<ul>\n<li><a href=\"https:\/\/marketplace.owncloud.com\">marketplace.owncloud.com<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/owncloud\/marketplace\" target=\"_blank\" rel=\"noopener\">github.com\/owncloud\/marketplace<\/a><\/li>\n<li><em>ownCloud OSPO:<\/em>\n<ul>\n<li>ospo@kiteworks.com<\/li>\n<li><a href=\"https:\/\/kiteworks.com\/opensource\" target=\"_blank\" rel=\"noopener\">kiteworks.com\/opensource<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The new ownCloud Marketplace is live. 13 Web Extensions, 42 apps, 324 releases, 36 publishers and counting. Zero backend. Zero database. Zero server-side processing. The Git repository is the source of truth. The catalogue is static JSON. Publishing an app is a pull request. Git is the app store.<\/p>\n","protected":false},"author":7,"featured_media":78665,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[603,333,337,509,401,48,341,344,621,339,55,354,44],"tags":[],"class_list":["post-79822","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apps","category-community","category-foss","category-infinite-scale","category-marketplace","category-news","category-news-from-owncloud","category-opensource","category-ospo","category-owncloud","category-owncloud-product","category-release","category-updates"],"acf":[],"_links":{"self":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/79822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/comments?post=79822"}],"version-history":[{"count":2,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/79822\/revisions"}],"predecessor-version":[{"id":79824,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/79822\/revisions\/79824"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/media\/78665"}],"wp:attachment":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/media?parent=79822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/categories?post=79822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/tags?post=79822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}