ota

Implements self-hosted OTA updates for React Native/Expo apps using Supabase Edge Functions and CI/CD pipelines.

Updated Apr 21, 2026
One-click install
npx skills add https://github.com/anicca-labs/claude --skill ota
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ota
Source: https://github.com/anicca-labs/claude/tree/main/plugins/expo-rn-plugin/skills/ota
Command: npx skills add https://github.com/anicca-labs/claude --skill ota

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires expo-updates, supabase-js, deno, and includes scripts (resource) and references (resource) and assets (resource) components.

What problem does it solve?

This Skill provides a complete solution for self-hosted OTA (Over-the-Air) updates via Supabase, including setup, Edge Function manifest server, CI upload script, and Doppler configuration. It eliminates the need for EAS Update or Expo's build servers for implementing over-the-air JS updates.

Core Features & Use Cases

  • Self-hosted OTA: Hosts JS bundles and assets on Supabase, eliminating the need for EAS Update subscription.
  • Edge Function: Implements the Expo Updates Protocol, serving multipart manifests.
  • CI Integration: CI script for uploading updates and pruning old ones.
  • Use Case: Ideal for React Native/Expo projects looking to implement OTA updates without relying on external build servers.

Quick Start

Install the necessary dependencies and configure your project settings to start using the OTA skill.

Frequently Asked Questions about ota

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up self-hosted OTA updates for a React Native Expo app?

No, you do not need EAS Update. This Skill implements the Expo Updates Protocol via Supabase Edge Functions, allowing you to distribute JS updates without relying on Expo's external build servers or subscriptions.

Can I use Supabase Edge Functions to serve Expo Updates manifests?

The CI pipeline handles uploading new JS bundles and assets to Supabase storage and prunes old updates. This ensures your self-hosted OTA distribution retains only the necessary versions.

What dependencies are required to implement OTA updates with Supabase?

Required dependencies include expo-updates for the client, supabase-js for storage interaction, and deno for the Edge Function. The Skill also integrates Doppler for configuration management.

Does this self-hosted OTA approach work without Expo's external build servers?

Yes, this self-hosted OTA approach works entirely without Expo's external build servers. It uses Supabase to host JS bundles and Edge Functions to implement the update protocol independently.

How do I prune old OTA updates in a Supabase CI pipeline?

You can prune old OTA updates using the included CI script. It handles uploading new updates to Supabase and automatically prunes old ones to enforce flexible update distribution and retention policies.