Open Source  ·  Self-Hosted  ·  Apache 2.0

Invite attribution
that just works

When a user clicks your invite link and installs the app, the invite code resolves automatically on first launch — no user interaction required, no third-party SDK lock-in.

Invisible to users No login required Data stays yours iOS · Android · Web SDKs Apache 2.0 open source
POST /v1/resolutions — invite code resolved on first launch
// Mobile SDK — called on first app launch
POST /v1/resolutions
Authorization: Bearer sk_live_•••
 
200 OK  ·  confidence 0.94
{
  "inviteCode": "INV-2024-K9X",
  "channel": "fuzzy",
  "confidence": 0.94,
  "matchedAt": "2024-01-15T08:32:11Z"
}
How it works

Five steps. Zero friction.

Device fingerprinting bridges the gap between a web click and an app install — no cookies, no login, no clipboard permission needed.

Share

User A generates and shares an invite link

Click

User B visits your landing page

Fingerprint

JS SDK captures multi-signal browser fingerprint

Install

User B installs and opens the app

Matched

Invite code auto-resolved and returned

Core Features

Everything you need.
Nothing you don't.

Built for developers who want precise invite tracking without third-party lock-in. Your data, your infrastructure.

Fully Self-Hosted

Your data never leaves your infrastructure. A single docker compose up deploys the full stack — API, PostgreSQL, and Redis. No vendor lock-in, no monthly fees, forever free.

Three-Channel Resolution

Redis exact hash (zero-latency cache) → PostgreSQL fuzzy scoring (weighted multi-signal) → Android clipboard fallback. Three-tier degradation maximises match rate in all scenarios.

Smart Fingerprinting

Weighted matching across IP subnet, timezone, screen resolution, language, OS version, and hardware concurrency. Configurable confidence threshold (0–1), 72-hour match window by default.

Native SDKs for All Platforms

First-class Swift SDK for iOS, Kotlin SDK for Android, and a TypeScript Web SDK — all open source, production-ready, and dependency-light. Integrate in minutes, not days.

Your Invite Codes

Bring your own invite codes — stored and returned verbatim. Generation logic, validation rules, and usage limits are entirely yours. Custom metadata fields travel with each code.

Multi-Tenant & Quota Control

Run as a shared SaaS with per-project API keys and tiered quota enforcement (Free / Pro / Unlimited), or deploy in single-tenant mode with zero auth overhead for private teams.

SDK Integration

Integrate in minutes

Official SDKs for all major platforms. All open source, no black-box dependencies.

Web / JavaScript

TypeScript · Browser + Node.js
npm install @share-installs/js-sdk

iOS

Swift 5.9+ · CocoaPods
pod 'ShareInstalls' # SPM: swift package add share-installs/sdk-ios

Android

Kotlin · Gradle
implementation("com.share-installs:sdk-android:0.0.1")
Pricing

Start free,
scale when ready.

Whether you're a solo developer or a growing team, there's a plan for you. Self-hosted is always free.

Self-Hosted
Free / forever

Deploy on your own server. Full control, no usage limits, zero cost.

  • Unlimited projects & API calls
  • Data never leaves your server
  • One-command Docker Compose deploy
  • PostgreSQL + Redis included
  • Apache 2.0 — fork & modify freely
View on GitHub
Free
$0 / month

Perfect for indie developers and side projects. No credit card required.

  • 10 resolutions / minute
  • 1 project
  • GitHub OAuth login
  • Basic dashboard
  • All platform SDKs
  • No priority support
Sign up free
Unlimited
$29 / month

For high-traffic apps and enterprise teams that need unlimited scale.

  • 600 resolutions / minute
  • Unlimited projects
  • Dedicated support & SLA
  • Custom quota configuration
  • Everything in Pro
  • Invoicing & team billing
Upgrade now

Need more than Unlimited? Contact us for a custom plan. Or go self-hosted — unlimited usage, zero cost.

Deployment

Your infrastructure, your choice

Zero-config self-hosting or full SaaS with GitHub OAuth and usage quotas — flip a single env var.

Self-Hosted

Run it yourself, full control

Deploy on your own server or private cloud. Data never leaves your infrastructure. No usage limits, ideal for privacy-sensitive teams and single-app deployments.

  • One-command Docker Compose deploy
  • No authentication required out of the box
  • Optional Admin Secret for project management
  • PostgreSQL + Redis bundled in Compose
  • Apache 2.0 — fully open source
SaaS Hosted

Zero ops, focus on your product

No server management — sign up and go. Multi-tenant mode with GitHub OAuth login, per-project API key management, and plan-based usage quotas.

  • GitHub OAuth one-click login
  • Per-project API key management
  • Free / Pro / Unlimited tiers
  • Dashboard with usage analytics
  • No ops — scale on demand
Quick Start

Up and running in 60 seconds

Three steps to self-host. Or sign up for SaaS — no server needed.

Self-hosted deploy — bash
# 1. Clone the repo
git clone https://github.com/ceeyang/share-installs.git
cd share-installs

# 2. Start all services (API + PostgreSQL + Redis + Dashboard)
docker compose up --build -d
Verify & create your first project
curl http://localhost:6066/health
→ {"status":"ok","mode":"self-hosted","version":"1.0.0"}

# 3. Create your first project
curl -X POST http://localhost:6066/v1/projects \
  -H "Content-Type: application/json" \
  -d '{"name":"my-app"}'
→ {"id":"proj_xxx","apiKey":"sk_live_•••"}
Full documentation
FAQ

Questions you might have

Can't find what you're looking for? Open an issue on GitHub and we'll get back to you.

What's the difference between self-hosted and SaaS?
Self-hosted means you run the entire stack on your own server — your data never leaves your infrastructure and there are no usage limits, forever free. SaaS means we operate the infrastructure for you, so you can focus on building. Both options use the exact same codebase and feature set.
How accurate is device fingerprint attribution?
Under normal network conditions, the exact hash match channel (Redis) achieves near-100% accuracy. The fuzzy fingerprint channel (PostgreSQL) typically scores above 0.85 confidence. You can tune FINGERPRINT_MATCH_THRESHOLD (default 0.75) to balance precision vs. coverage.
What are the Free tier limits? Do upgrades apply immediately?
The Free tier allows 10 resolutions per minute and 1 project — enough for indie projects and early validation. Upgrading to Pro or Unlimited takes effect immediately with no restart or re-configuration needed. If you outgrow Unlimited, self-hosting removes all limits at zero cost.
Can I call the API directly without an SDK?
Absolutely. share-installs exposes a standard RESTful API — any language or platform that can make HTTP requests can integrate directly. The SDKs are simply convenience wrappers. Full API documentation and examples are available in the GitHub repository.
Is my data safe? Will it be used for anything else?
On self-hosted, we have zero access to your data — it lives entirely on your server. On SaaS, your attribution data is used solely to provide the service and is never shared with third parties or used for advertising. The codebase is fully open source, so you can audit every data handling decision yourself.

Open source and free forever

Self-host at zero cost, or validate your idea on the free SaaS tier.

Get Started Free Star on GitHub