https://github.com/Cap-go/capgo
Instant update for capacitor apps
https://github.com/Cap-go/capgo
android capacitor cordova ios
Last synced: 3 months ago
JSON representation
Instant update for capacitor apps
- Host: GitHub
- URL: https://github.com/Cap-go/capgo
- Owner: Cap-go
- License: agpl-3.0
- Created: 2021-12-28T01:55:37.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-07-14T17:28:42.000Z (3 months ago)
- Last Synced: 2025-07-14T17:34:16.178Z (3 months ago)
- Topics: android, capacitor, cordova, ios
- Language: TypeScript
- Homepage: https://capgo.app
- Size: 183 MB
- Stars: 143
- Watchers: 5
- Forks: 61
- Open Issues: 28
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
![]()
[](https://sonarcloud.io/summary/new_code?id=Cap-go_capgo)
[](https://sonarcloud.io/summary/new_code?id=Cap-go_capgo)
[](https://sonarcloud.io/summary/new_code?id=Cap-go_capgo)
[](https://sonarcloud.io/summary/new_code?id=Cap-go_capgo)
[](https://sonarcloud.io/summary/new_code?id=Cap-go_capgo)
[](https://sonarcloud.io/summary/new_code?id=Cap-go_capgo)
[](https://sonarcloud.io/summary/new_code?id=Cap-go_capgo)
[](https://sonarcloud.io/summary/new_code?id=Cap-go_capgo)
[](https://sonarcloud.io/summary/new_code?id=Cap-go_capgo)
[](https://snyk.io/test/github/Cap-go/capgo)

[](https://github.com/Cap-go/capgo/actions/workflows/bump_version.yml)
[](https://github.com/Cap-go/capgo/actions/workflows/build_and_deploy.yml)
[](https://github.com/Cap-go/capgo/actions/workflows/udd.yml)
[](https://app.netlify.com/sites/webcapgo/deploys)
![]()
➡️ Get Instant updates for your App with Capgo 🚀
Fix your annoying bug now, Hire a Capacitor expert 💪
## Features
- ⚡️ Test the web app directly on your phone using the native API
- 😃 Share your new features with your teammates
- ↕️ Manage your channels for auto-update system
## Documentation
https://github.com/Cap-go/capacitor-updater/wiki/Capgo-Sandbox-App
- [Changing Supabase](supabase/migration_guide.md)
## Plugins
All the following official plugins are already installed and pre-configured:
- [Action Sheet](https://github.com/ionic-team/capacitor-plugins/tree/main/action-sheet) -
Provides access to native Action Sheets.
- [App](https://github.com/ionic-team/capacitor-plugins/tree/main/app) - Handles
high level App state and events.
- [App Launcher](https://github.com/ionic-team/capacitor-plugins/tree/main/app-launcher) -
Allows to check if an app can be opened and open it.
- [Browser](https://github.com/ionic-team/capacitor-plugins/tree/main/browser) -
Provides the ability to open an in-app browser and subscribe to browser
events.
- [Camera](https://github.com/ionic-team/capacitor-plugins/tree/main/camera) -
Provides the ability to take a photo with the camera or choose an existing one
from the photo album.
- [Clipboard](https://github.com/ionic-team/capacitor-plugins/tree/main/clipboard) -
Enables copy and pasting to/from the system clipboard.
- [Device](https://github.com/ionic-team/capacitor-plugins/tree/main/device) -
Exposes internal information about the device, such as the model and operating
system version, along with user information such as unique ids.
- [Dialog](https://github.com/ionic-team/capacitor-plugins/tree/main/dialog) -
Provides methods for triggering native dialog windows for alerts,
confirmations, and input prompts.
- [Filesystem](https://github.com/ionic-team/capacitor-plugins/tree/main/filesystem) -
Provides a NodeJS-like API for working with files on the device.
- [Geolocation](https://github.com/ionic-team/capacitor-plugins/tree/main/geolocation) -
Provides simple methods for getting and tracking the current position of the
device using GPS, along with altitude, heading, and speed information if
available.
- [Haptics](https://github.com/ionic-team/capacitor-plugins/tree/main/haptics) -
Provides physical feedback to the user through touch or vibration.
- [Keyboard](https://github.com/ionic-team/capacitor-plugins/tree/main/keyboard) -
Provides keyboard display and visibility control, along with event tracking
when the keyboard shows and hides.
- [Local Notifications](https://github.com/ionic-team/capacitor-plugins/tree/main/local-notifications) -
Provides a way to schedule device notifications locally (i.e. without a server
sending push notifications).
- [Motion](https://github.com/ionic-team/capacitor-plugins/tree/main/motion) -
Tracks accelerometer and device orientation (compass heading, etc.).
- [Network](https://github.com/ionic-team/capacitor-plugins/tree/main/network) -
Provides network and connectivity information.
- [Push Notifications](https://github.com/ionic-team/capacitor-plugins/tree/main/push-notifications) -
Provides access to native push notifications.
- [Screen Reader](https://github.com/ionic-team/capacitor-plugins/tree/main/screen-reader) -
Provides access to TalkBack/VoiceOver/etc. and Provides simple text-to-speech
capabilities for visual accessibility.
- [Share](https://github.com/ionic-team/capacitor-plugins/tree/main/share) -
Provides methods for sharing content in any sharing-enabled apps the user may
have installed.
- [Splash Screen](https://github.com/ionic-team/capacitor-plugins/tree/main/splash-screen) -
Provides methods for showing or hiding a Splash image.
- [Status Bar](https://github.com/ionic-team/capacitor-plugins/tree/main/status-bar) -
Provides methods for configuring the style of the Status Bar, along with
showing or hiding it.
- [Storage](https://github.com/ionic-team/capacitor-plugins/tree/main/storage) -
Provides a simple key/value persistent store for lightweight data.
- [Text Zoom](https://github.com/ionic-team/capacitor-plugins/tree/main/text-zoom) -
Provides the ability to change Web View text size for visual accessibility.
- [Toast](https://github.com/ionic-team/capacitor-plugins/tree/main/toast) -
Provides a notification pop up for displaying important information to a user.
Just like real toast!## Dev contribution
### Coding Style
- Use Composition API with
[`` SFC syntax](https://github.com/vuejs/rfcs/pull/227)
- [ESLint](https://eslint.org/) with
[@antfu/eslint-config](https://github.com/antfu/eslint-config), single quotes,
no semi.### Dev tools
- [TypeScript](https://www.typescriptlang.org/)
- [bun](https://bun.sh/) - fast javascript runtime, package manager, bundler,
test runner an all-in-one toolkit
- [critters](https://github.com/GoogleChromeLabs/critters) - Critical CSS
- [Cloudflare](https://www.cloudflare.com/) - zero-config deployment
- [VS Code Extensions](./.vscode/extensions.json)
- [Vite](https://marketplace.visualstudio.com/items?itemName=antfu.vite) -
Fire up Vite server automatically
- [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar) -
Vue 3 `<script setup>` IDE support
- [Iconify IntelliSense](https://marketplace.visualstudio.com/items?itemName=antfu.iconify) -
Icon inline display and autocomplete
- [i18n Ally](https://marketplace.visualstudio.com/items?itemName=lokalise.i18n-ally) -
All in one i18n support
- [Windi CSS Intellisense](https://marketplace.visualstudio.com/items?itemName=voorjaar.windicss-intellisense) -
IDE support for Windi CSS
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)## Usage
Capgo is deployed to production on Cloudflare workers, Netlify and Supabase.
Cloudflare workers take 99% of the traffic. Supabase is used for internal calls, for internal tasks such as CRON jobs that call functions. Netlify is used only as a backup for Cloudflare.
When self-hosted, installing only Supabase is sufficient.
### Deploy on Cloudflare Pages
Use the CLI to deploy to preprod
```bash
bun run dev-build
# then deploy
bun run deploy:cloudflare_frontend:preprod
```or Prod
```bash
bun run build
# then deploy
bun run deploy:cloudflare_frontend:prod
```### Development
You will need to start each local server in separate terminals.
Before continuing, ensure you have the following installed:
- [Docker](https://www.docker.com/)
- [bun](https://bun.sh/)
- [Supabase CLI](https://supabase.com/docs/guides/cli)You can install the `supabase` CLI globally with `bun install supabase -g` and you'll be able to invoke `supabase` from anywhere.
Alternatively, you can install the `supabase` CLI locally with
`bun install supabase --save-dev` but, to invoke it, you have to use:
`./node_modules/supabase/bin/supabase`.In the following guideline, we will assume that you have installed the `supabase` CLI globally.
#### Start Supabase DB Locally
Start the Supabase DB:
```bash
supabase start
```If the command is completed successfully, your console should output:
```bash
Started supabase local development setup.API URL: http://localhost:54321
GraphQL URL: http://localhost:54321/graphql/v1
DB URL: postgresql://postgres:postgres@localhost:54322/postgres
Studio URL: http://localhost:54323
Inbucket URL: http://localhost:54324
JWT secret: super-secret-jwt-token-with-at-least-32-characters-long
anon key: xxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXx.xxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXx
service_role key: xxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXx.xxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxXxxxxxXxxxxxX
```#### Seed Supabase DB locally
[!WARNING]
⚠️ Ensure Docker is running.```bash
supabase db reset
```#### Start Frontend locally
```bash
bun install
bun serve:dev
```#### Login
Visit http://localhost:5173
There are two login credentials you can use:
| Account | Username | Password |
| ---------- | --------------- | ---------- |
| Demo User | test@capgo.app | testtest |
| Admin User | admin@capgo.app | adminadmin |The _demo user_ account has some demo data in it. If the data is not fresh, just
reset the db with `supabase db reset`. The seed has been made in a way that ensures the
data is always fresh.The _admin user_ account has administration rights so the user can impersonate other users.
You can find the interface for that in the "Account" section.#### Supabase DB Reset
[!WARNING]
⚠️ Ensure Docker is running.This will seed the DB with demo data.
```bash
supabase db reset
```### Deploy Supabase self hosted
To deploy the supabase instance in self-hosted, use the
[Supabase official guide](https://supabase.com/docs/guides/self-hosting).### Deploy Supabase cloud
To deploy the Supabase instance on cloud, you need a paid account, which costs $25/month.
Link the project to the cloud with the following command:
```bash
supabase link
```https://supabase.com/docs/reference/cli/supabase-link
Then you need to push the migrations to the cloud with the following command:
```bash
supabase db push --linked
```https://supabase.com/docs/reference/cli/supabase-migration-up
And seed the DB with demo data:
```bash
supabase seed buckets
```https://supabase.com/docs/reference/cli/supabase-seed-buckets
Seed the secret for functions:
```bash
supabase secrets set --env-file supabase/functions/.env
```Push the functions to the cloud:
```bash
supabase functions deploy
```### Build
To build the web app in mobile, in order to push to mobile stores, run:
```bash
bun install
bun mobile
```And you will see the generated files in the `dist` directory, ready to be served on stores.