feat(packages): implement package-based business model

This commit is contained in:
Codex Agent
2025-09-26 22:13:56 +02:00
parent 6fc36ebaf4
commit 0a643c3e4d
54 changed files with 3301 additions and 282 deletions

View File

@@ -2,7 +2,7 @@
## Executive Summary
This document details the Freemium business model for the Fotospiel tenant app, combining free access with in-app purchases for event credits. The model prioritizes user acquisition through a free app download while monetizing through value-driven upgrades. Key metrics: 5-10% conversion rate, ARPU €10-15, scalable to 100k+ users.
This document details the Package-based business model for the Fotospiel tenant app, combining free access with purchases of predefined packages. The model prioritizes user acquisition through a free test package while monetizing through value-driven upgrades. Key metrics: 5-10% conversion rate, ARPU €10-15, scalable to 100k+ users. See 15-packages-design.md for package details.
## Model Analysis
@@ -30,18 +30,13 @@ This document details the Freemium business model for the Fotospiel tenant app,
- Complex IAP setup and testing
- Requires strong onboarding to drive conversions
### Hybrid Freemium Recommendation
**Core Strategy:** Free app with limited first event (50 photos, basic features), unlimited upgrades via IAP credits/subscriptions.
### Package-based Recommendation
**Core Strategy:** Free app with limited test package for first event, upgrades via package purchases (Einmalkäufe for Endkunden, Subscriptions for Reseller).
**Pricing Structure:**
- **Free Tier:** 1 basic event (50 photos, standard tasks, no custom branding)
- **Consumable Credits:**
- Starter Pack: €4.99 for 5 events (100 photos each)
- Pro Pack: €14.99 for 20 events (unlimited photos)
- **Subscriptions:**
- Pro Unlimited: €4.99/month (all features, unlimited events)
- Agency: €19.99/month (multi-tenant, analytics, white-label)
- **Non-Consumables:** Lifetime Unlimited: €49.99 (one-time purchase)
**Pricing Structure:** See 15-packages-design.md for Endkunden (pro Event: Free/Test 0€, Starter 19€, etc.) and Reseller (jährlich: S 149€, etc.).
- **Free Tier:** Test package (30 photos, 10 guests, 3 days gallery, 1 task, standard watermark)
- **Endkunden Packages:** Einmalkäufe pro Event with increasing limits/features.
- **Reseller Packages:** Annual subscriptions with event limits and branding options.
**Expected Metrics:**
- Downloads: 50k/year
@@ -91,38 +86,13 @@ This document details the Freemium business model for the Fotospiel tenant app,
- **Analytics:** Firebase for funnel tracking, RevenueCat for purchase events
### Backend API Extensions
- **Credit Management:** `/api/v1/tenant/credits` endpoints
- **Purchase Validation:** Webhook receiver from RevenueCat
- **Package Management:** `/api/v1/packages` and `/api/v1/tenant/packages` endpoints
- **Purchase Validation:** Webhook receiver from Stripe
- **Event Limiting:** Middleware checking credit balance before creation
- **Subscription Sync:** Real-time updates via WebSockets (optional)
### Database Schema Additions
```sql
-- tenant_credits table
CREATE TABLE tenant_credits (
tenant_id VARCHAR(255) PRIMARY KEY,
balance INTEGER DEFAULT 1, -- 1 free event
total_purchased INTEGER DEFAULT 0,
subscription_active BOOLEAN DEFAULT FALSE,
subscription_tier VARCHAR(50),
last_sync TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- purchase_history table
CREATE TABLE purchase_history (
id VARCHAR(255) PRIMARY KEY,
tenant_id VARCHAR(255) NOT NULL,
package_id VARCHAR(255) NOT NULL,
credits_added INTEGER,
price DECIMAL(10,2),
currency VARCHAR(3),
platform VARCHAR(50), -- 'ios' or 'android'
transaction_id VARCHAR(255),
purchased_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (tenant_id) REFERENCES tenants(id)
);
```
See 15-packages-design.md for updated schema: `packages`, `event_packages`, `tenant_packages`, `package_purchases`.
## Risk Mitigation