We welcome and appreciate all contributions to Capgo.

This page serves as a helper to get you started on contributing.


There are numerous repositories in the Capgo organization that are part of the Capgo .

Repositories have different scopes, use different programming languages and have varying level when it comes to contributions.

To help you decide which repository might be the best to start contributing (and/or falls into your interest), here's a short comparison (languages in bold comprise most of the codebase):


This is the main repository that provides the capacitor-updater Plugin.

If you want to fix a bug or add a new feature to capacitor-updater this is the repository you want to contribute to.

Languages: Swift, JavaScript, Java


The Webapp and serverless functions that make up the Capgo cloud platform.

Thare where you want to contribute to fix the backend of Capgo.

Languages: TypeScript.


Frontend for official Deno webpage: https://capgo.app/

Languages: TypeScript, HTML, CSS


Documentation in Markdown that powers https://doc.capgo.app

Languages: Markdown


Version manager that power CI/CD to uppdate apps.

Languages: JavaScript

  • Read the style guide.

  • Ask for help in the community chat room.

  • If you are going to work on an issue, mention so in the issue comments before you start working on the issue.

  • If you are going to work on a new feature, create an issue and discuss with other contributors before you start working on the feature; we appreciate all contributions, but not all proposed features are getting accepted. We don't want you to spend hours working on a code that might not be accepted.

  • Please be professional in the forums. We follow Rust's code of conduct (CoC). Have a problem? Email ry@tinyclouds.org.

Submitting a pull request

Before submitting a PR to any of the repos, please make sure the following is done:

  1. Give the PR a descriptive title.

Examples of good PR title:

  • fix(std/http): Fix race condition in server
  • docs(console): Update docstrings
  • feat(doc): Handle nested re-exports

Examples of bad PR title:

  • fix #7123
  • update docs
  • fix bugs

  • Ensure there is a related issue and it is referenced in the PR text.

  • Ensure there are tests that cover the changes.

Submitting a PR to Capgo

Additionally to the above make sure that:

  1. npm run lint passes - this will check Rust and JavaScript code for common mistakes and errors using Swiftlint (for Swift) and eslint (for JavaScript and Java)

Documenting APIs

It is important to document all public APIs and we want to do that inline with the code. This helps ensure that code and documentation are tightly coupled together.

JavaScript and TypeScript

All publicly exposed APIs and types, the capacitor-updater module should have JSDoc documentation. This documentation is parsed and available to the TypeScript compiler, and therefore easy to provide further downstream. JSDoc blocks come just prior to the statement they apply to and are denoted by a leading /** before terminating with a */. For example:

export const FOO = "foo";

Find more at: https://jsdoc.app/