RevenueDot은 모바일 앱의 인앱 결제와 구독을 처리하는 오픈소스 서비스다. RevenueCat SDK와 호환되는 서버, 앱 SDK, 결제 화면, 실험, 웹 결제, 고객센터, 분석 차트와 연동 기능을 제공하며, 자체 서버에 설치하거나 RevenueDot Cloud에서 사용할 수 있다. 첫 릴리스는 v2026.10.03이다.

서버와 대시보드는 AGPL-3.0, SDK·CLI·MCP 서버·에이전트 스킬은 MIT 라이선스다. Enterprise 기능이 들어 있는 ee/ 디렉터리에는 별도 RevenueDot Enterprise License가 적용된다. 제품은 RevenueCat과 제휴·승인·후원 관계가 아니라고 밝힌다.

기능과 적용 상태

RevenueDot은 App Store와 Google Play 구매 검증, 구독 권한(entitlement) 관리, 스토어 알림 처리, 웹훅, RevenueCat 호환 REST API를 제공한다. 제작자 설명에 따르면 v1 API 15개 엔드포인트와 v2 API 128개 작업을 지원하며, 웹훅은 RevenueCat의 이벤트 이름과 페이로드를 사용한다. 서명된 웹훅은 재시도와 재생을 지원한다.

기본 기능 외에 네이티브 결제 화면과 시각 편집기, A/B 실험, 타기팅 규칙, 웹 결제 및 웹-앱 전환 퍼널, 인앱 Customer Center, 구독 분석 차트 43개와 연동 36개를 포함한다고 소개한다. 차트는 RevenueCat의 정의를 따른다고 설명한다. AI 기능은 대시보드 질의와 일부 변경 작업을 지원하며, 변경은 사용자가 승인한 뒤 적용된다. MCP 서버와 Claude Code·Codex·Cursor용 에이전트 스킬도 제공한다.

SDK는 iOS, Android, React Native·Expo, Flutter, 웹, Capacitor, Kotlin Multiplatform, Unity, Cordova를 지원한다. 새 앱은 RevenueDot SDK를 설치해 사용할 수 있고, 기존 RevenueCat 앱은 기존 SDK를 유지한 채 프록시 URL을 바꾸거나 RevenueDot SDK 포크로 전환할 수 있다. 기존 SDK를 그대로 쓰는 경우 RevenueDot 응답 서명 검사를 끄거나, RevenueDot 서명 키가 포함된 SDK 포크를 써야 한다고 안내한다.

RevenueDot은 RevenueCat SDK의 테스트 픽스처 94개 요청·응답 사례와 21개 웹훅 사례, 공개 OpenAPI 파일을 호환성 검사에 사용한다고 밝힌다. 수정이 이 검사에 실패하면 병합하지 않는다고 설명한다. 1,700개 테스트가 모든 풀 리퀘스트에서 실행되며, CI는 3분 미만이라고 주장한다.

실제 운영 검증 범위에는 중요한 차이가 있다. 제작자에 따르면 2026년 10월 2일 물리 iPhone에서 App Store 샌드박스 구매부터 앱 권한 부여까지 시험했고, 같은 날부터 한 운영 앱에서 RevenueCat과 병행해 알림을 처리했다. RevenueDot Cloud는 2026년 10월 3일부터 실제 카드 결제를 처리했다고 한다. Stripe는 테스트 모드에서 구매·갱신·실패 결제·환불을 시험했다. Google Play, Amazon, Paddle, Roku, Galaxy Store는 각 스토어 API의 복사본을 대상으로 시험했으며 실제 구매는 아직 없다고 밝힌다. 기능별 상태는 docs/STATUS.md에서 확인할 수 있다.

RevenueCat에서 옮기는 방법

프로젝트 저장소는 마이그레이션을 세 단계로 안내한다.

  • 가져오기: 자체 컴퓨터에서 RevenueCat 비밀 API 키를 사용해 제품, 권한, 오퍼링, 고객, 속성, 구매 이력을 가져온다. 기존 공개 API 키는 계속 사용할 수 있고, 현재 권한 상태도 가져와 전환 시 구독자가 접근을 잃지 않도록 한다. CLI는 npm의 revenuedot 패키지다. 가져온 뒤 import verify로 양쪽 고객 정보를 확인한다.
  • 병행 실행: App Store와 Google Play 알림을 RevenueDot으로 보내고 RevenueDot이 각 알림을 RevenueCat에도 전달한다. 두 시스템의 기록을 비교할 수 있다.
  • 전환: 앱 업데이트에서 SDK의 프록시 URL을 설정한다. 대부분의 사용자가 새 버전으로 이동한 뒤 RevenueCat을 끈다.

Cloud 주소를 사용하는 예시는 다음과 같다. 자체 호스팅하는 경우 URL을 자신의 서버 주소로 바꾼다.

text
// iOS, macOS, tvOS, watchOS, visionOS (Swift): before configure
Purchases.proxyURL = URL(string: "https://api.revenuedot.app")!
Purchases.configure(withAPIKey: "appl_...")
// Android (Kotlin): before configure
Purchases.proxyURL = URL("https://api.revenuedot.app")
// React Native and Expo
await Purchases.setProxyURL("https://api.revenuedot.app");
// Flutter (iOS and Android)
await Purchases.setProxyURL("https://api.revenuedot.app");
// Capacitor and Ionic
await Purchases.setProxyURL({ url: "https://api.revenuedot.app" });
// Kotlin Multiplatform
Purchases.proxyURL = "https://api.revenuedot.app"
// Web (purchases-js)
Purchases.configure({ apiKey: "rcb_...", appUserId, httpConfig: { proxyURL: "https://api.revenuedot.app" } });
Unity: set the `proxyURL` field on the `Purchases` component. Cordova: `Purchases.setProxyURL(url)`. `https://api.revenuedot.app` is RevenueDot Cloud; self-hosting? Use your own server's URL.

마이그레이션 CLI는 다음 명령으로 실행한다. RevenueDot은 키 입력을 숨겨 셸 기록에 남지 않게 한다고 설명한다.

text
npx revenuedot import --from-revenuecat --rc-project <RevenueCat project id> --to https://api.revenuedot.app

가져오기 절차와 병행 실행 안내는 마이그레이션 가이드, 병행 실행 안내에 있다. Google Play 구매 토큰이 RevenueCat 내보내기에 없으면, CLI가 내보내기의 주문 ID와 Google Orders API를 이용해 복구한다고 FAQ에서 설명한다.

설치와 요금

자체 호스팅은 Docker와 Postgres를 이용한다. 저장소가 제시한 기본 실행 명령은 다음과 같다.

text
docker pull ghcr.io/revenuedot/revenuedot:latest
git clone https://github.com/revenuedot/revenuedot && cd revenuedot
cp .env.example .env # set POSTGRES_PASSWORD before the first start
docker compose up -d # API, dashboard and Postgres

이미지는 amd64와 arm64용으로 빌드되며, 직접 운영하면 서버·Postgres·백업·업그레이드를 관리해야 한다. 업데이트는 docker compose pull && docker compose up -d로 안내한다. Kubernetes 고가용성 배포에는 Helm 차트와 AWS·Google Cloud용 Terraform 구성이 있지만, 저장소는 해당 구성의 일부가 실제 환경에 적용된 것은 아니라고 명시한다. 자체 호스팅 안내는 문서에서 확인할 수 있다.

RevenueDot Cloud Pro는 월 매출 1만 달러까지 무료이며, 이를 넘으면 초과분의 0.5%를 부과하되 월 999달러를 넘지 않는다. Enterprise는 맞춤 요금이며 연 5만 달러부터라고 제시한다. Pro는 앱·프로젝트·팀원 수 제한 없이 기능을 제공하고, 월 100만 달러까지의 앱을 대상으로 한다고 소개한다. 개발과 테스트에는 카드가 필요 없다. 첫 실제 판매 뒤 14일 이내에 Pro를 시작하지 않으면 실시간 차트·고객 데이터·내보내기·웹훅이 중단되지만, 구매 검증과 구매에 따른 권한 부여는 계속된다고 안내한다.

RevenueDot은 RevenueCat이 월 추적 매출 2,500달러를 넘으면 전체 추적 매출의 1%를 받는다고 비교한다. 다만 이는 RevenueDot이 자체 비교 페이지에서 제시한 내용이며, 비교 기준과 출처는 비교 페이지에서 확인해야 한다. 가격 및 플랜의 세부 조건은 저장소 가격 안내에 있다.

데이터 이동과 지원 범위

RevenueDot은 Cloud와 자체 서버 사이에서 프로젝트를 이동하고, 70개 테이블의 데이터를 체크섬과 함께 내보낼 수 있다고 설명한다. 이동은 대시보드나 npx revenuedot move --from <old server> --to <new server>로 시작하며, 프로젝트 ID와 키를 유지하는 방식이다. 다만 FAQ의 전체 내보내기 항목은 64개 테이블이라고 적어 자료 안에 수치가 서로 다르다. 비밀 정보는 암호 문구를 제공한 경우에만 포함한다고 한다. 이동 안내는 프로젝트 이동 문서를 참고할 수 있다.

Cloud는 Cloudflare Workers와 Hyperdrive를 통해 Postgres에 연결한다. 자체 서버는 Docker Compose 외에도 Helm과 Terraform을 이용할 수 있다. 프로젝트별 데이터 위치 설정 기능은 있지만 Cloud는 현재 미국에서 운영되며, EU Cloud 리전은 계획 단계라고 밝힌다. 자체 호스팅 데이터는 운영자가 선택한 위치에 둔다고 설명한다.

App Store, Google Play 외에 Amazon Appstore, Stripe, Paddle, Roku, Samsung Galaxy Store와 웹 구매 경로를 지원한다고 소개한다. 그러나 스토어별 실거래 검증 상태는 다르다. 특히 Amazon, Paddle, Roku, Galaxy Store의 실제 구매는 아직 시험하지 않았다고 밝히며, 일부 연동과 결제 복구 기능도 모의 API를 대상으로 검증한 단계다. 따라서 기능 목록만으로 모든 스토어의 운영 준비 상태가 같다고 볼 수는 없다.

서버와 대시보드는 AGPL-3.0이며 SDK, CLI, MCP 서버와 에이전트 스킬은 MIT다. Enterprise 기능은 별도 라이선스가 적용된다. 상세 기능과 시험 범위는 저장소, 라이선스 안내, 상태 문서에서 확인할 수 있다.