Skip to main content

AI Caption Service - Business Model & Commercial Viability

Executive Summary

Question: Is providing AI caption generation commercially viable?

Answer: ✅ YES - but ONLY with proper license enforcement!

Critical Requirements:

  1. ✅ License validation MUST be enforced in production
  2. ✅ Lemon Squeezy API key MUST be configured
  3. ✅ Use fail-secure architecture (implemented)
  4. ❌ NEVER run production with AI_PROVIDER=openrouter/gemini and no license enforcement

🚨 Security Update - October 14, 2025

Previous Implementation (INSECURE ❌)

The original implementation had a critical flaw:

// OLD CODE - INSECURE
if (!(REQUIRE_LICENSE || LS_KEY)) return { ok: true };
// Anyone could use your API for free if REQUIRE_LICENSE=false

Result:

  • 💸 You pay all AI costs
  • 🌍 Anyone can use your API
  • 📈 Unlimited free access = bankruptcy

New Implementation (SECURE ✅)

// NEW CODE - FAIL-SECURE
const isDemoMode = REQUIRE_LICENSE === false && PROVIDER === 'mock';

if (isDemoMode) {
// Demo mode: Free access ONLY with mock provider (no real AI costs)
return { ok: true };
}

// Production mode: ALWAYS require valid license when using real AI
if (!LS_KEY) {
return { ok: false, code: 500, error: 'license_validation_not_configured' };
}

Result:

  • ✅ Free access ONLY for mock/testing
  • ✅ Real AI (OpenRouter/Gemini) REQUIRES valid license
  • ✅ Fail-secure: If misconfigured, denies access (not grants it)

Business Models

Users provide their own AI API keys

AspectDetails
License Price$49/year (PhotoSwipe Pro)
AI CostsUSER pays (to Gemini/OpenRouter)
Your Cost$0 for AI
Customer ValuePay only for usage, no quotas
Your RiskZERO - infinitely scalable
ComplexitySimple - no cost management needed

Example Pricing:

PhotoSwipe Pro: $49/year
- Includes: All Pro features + AI caption code
- User provides: Own Gemini API key (FREE tier available)
- User's AI cost: ~$0-10/year (depending on usage)
- Total customer cost: $49-59/year

Pros:

  • ✅ You pay $0 for AI
  • ✅ Infinitely scalable (no cost risk)
  • ✅ Simple pricing (one license fee)
  • ✅ Users pay only for what they use
  • ✅ No quota/billing management
  • ✅ Higher margins (100% on license)

Cons:

  • Users need to sign up for Gemini/OpenRouter
  • Slightly more complex onboarding

Your Profitability:

100 customers × $49/year = $4,900/year revenue
AI costs: $0
Other costs: ~$1,000/year (hosting, support)
Net profit: $3,900/year
Margin: 80%

This is the BEST model! 🎯


Model 2: Inclusive (Server-Provided Key)

AI costs included in PhotoSwipe Pro license price

AspectDetails
License Price$49-99 (one-time or annual)
AI CostsYOU pay (included in license)
Customer ValueSimple, predictable pricing
Your RiskHigh-volume users could exceed costs
MitigationRate limits, usage caps, fair use policy

Example Pricing:

PhotoSwipe Pro: $79/year
- Includes: 10,000 AI captions/year (Gemini)
- Fair use policy: ~830 images/month
- Cost to you: $10/year per customer
- Profit: $69/year per customer

Pros:

  • Simple customer experience
  • Higher perceived value
  • Predictable revenue

Cons:

  • Need to manage AI costs
  • Heavy users reduce margins
  • Must implement usage caps

Model 3: Usage-Based (Alternative)

AI costs passed through to customers

AspectDetails
License Price$29 (base) + usage
AI CostsCUSTOMER pays (metered)
Customer ValuePay only for what you use
Your RiskLow - costs passed through
ComplexityNeed billing system + metering

Example Pricing:

PhotoSwipe Pro Base: $29/year
+ $0.002 per caption (Gemini)
+ $0.02 per caption (GPT-4o)

Customer processing 5,000 images/year:
- Base: $29
- AI (Gemini): $10
- Total: $39/year

Pros:

  • No AI cost risk
  • Fair for all usage levels
  • Scalable

Cons:

  • More complex billing
  • Customer uncertainty about costs
  • Need metering infrastructure

Model 4: Tiered (Hybrid)

Combine fixed and usage-based

TierPriceIncluded CaptionsOverage
Starter$49/year5,000$0.002 each
Pro$99/year20,000$0.002 each
Enterprise$299/yearUnlimited-

Pros:

  • Best of both worlds
  • Predictable for small users
  • Scalable for large users

Cons:

  • Most complex to implement
  • Need usage tracking

Cost Analysis

AI Provider Costs

ProviderModelCost/ImageQualitySpeed
Geminigemini-1.5-flash$0.001GoodFast
Geminigemini-1.5-pro$0.0035BetterFast
OpenRoutergpt-4o$0.01BestModerate
OpenRouterclaude-3-haiku$0.0025GoodFast

Customer Value Scenarios

E-commerce Store (1,000 product images)

MetricValue
Manual alt text writing10 hours × $50/hr = $500
AI captions (Gemini)1,000 × $0.001 = $1
Savings$499
Time savings9.5 hours

PhotoSwipe Pro license cost: $79/year
ROI: 6.3× in first year

Customer is VERY happy to pay!

Your Profitability

Scenario: 100 customers, average 2,000 images/year each

Model 1 (Inclusive) - $79/year license:

Revenue:  100 customers × $79 = $7,900/year
AI costs: 100 × 2,000 × $0.001 = $200/year (Gemini)
Other costs: Hosting, support = ~$1,000/year
Net profit: $6,700/year
Margin: 85%

This is VERY commercially viable!

Same scenario with GPT-4o:

Revenue:  100 customers × $79 = $7,900/year
AI costs: 100 × 2,000 × $0.01 = $2,000/year (GPT-4o)
Other costs: ~$1,000/year
Net profit: $4,900/year
Margin: 62%

Still profitable, but Gemini offers better margins.


Risk Mitigation Strategies

1. Usage Caps ✅

Implement per-license limits:

// Pseudocode
const MONTHLY_CAPTION_LIMIT = 1000; // Per license

async function validateLicense(licenseKey) {
const usage = await getMonthlyUsage(licenseKey);
if (usage >= MONTHLY_CAPTION_LIMIT) {
return { ok: false, error: 'monthly_quota_exceeded' };
}
return { ok: true };
}

2. Rate Limiting ✅ (Already Implemented)

Current limits:

  • 20 requests/minute per IP
  • 50 images per batch request

Consider adding per-license rate limits:

const LICENSE_RATE_LIMIT = 100; // requests per hour per license

3. Fair Use Policy

Example policy:

PhotoSwipe Pro includes AI caption generation with fair use limits:
- Up to 10,000 captions per year
- Maximum 1,000 captions per month
- Exceeding limits: $0.002 per additional caption

Abuse prevention:
- Reselling caption generation is prohibited
- Automated high-volume processing requires Enterprise license
- We reserve the right to suspend licenses with unusual patterns

4. Monitoring & Alerts

Track per-license usage:

// Alert if license exceeds expected usage
if (monthlyUsage > 5000) {
notifyAdmin(`License ${licenseKey} exceeded 5000 captions this month`);
}

5. Prefer Gemini for Cost Control

Recommendation: Default to Gemini (10× cheaper) for better margins:

# Production .env
AI_PROVIDER=gemini # Not openrouter
GEMINI_API_KEY=your-key

Reserve GPT-4o for premium tier or explicit customer requests.


Implementation Checklist

Security (Critical) ✅

  • Fail-secure license validation
  • License required for real AI providers
  • Mock provider only for development
  • Lemon Squeezy integration

Cost Control

  • Usage tracking per license
  • Monthly quota enforcement
  • Admin dashboard for usage monitoring
  • Alerts for high-volume users

Customer Experience

  • Clear pricing documentation
  • Fair use policy published
  • Usage dashboard for customers
  • Graceful quota limit messages

Operations

  • Cost monitoring (AI API bills)
  • Customer usage reports
  • Profitability analysis
  • Pricing optimization

Development

# .env.development
AI_PROVIDER=mock
REQUIRE_LICENSE=false
# No AI costs, no license required - safe for testing

Production

# .env.production
AI_PROVIDER=gemini # 10× cheaper than GPT-4o
GEMINI_API_KEY=your-production-key
LEMON_SQUEEZY_API_KEY=your-ls-key
LEMON_SQUEEZY_STORE_ID=12345
LEMON_SQUEEZY_PRODUCT_ID=67890

# License validation is AUTOMATICALLY enforced
# No REQUIRE_LICENSE flag needed - it's fail-secure

What Happens:

  1. Development: Mock provider, no costs, no license needed
  2. Production: Real AI requires valid PhotoSwipe Pro license
  3. Misconfiguration: Server denies access (fail-secure)
  4. Customer: Simple - just need PhotoSwipe Pro license

Financial Projections

Year 1 (Conservative)

Assumptions:

  • 100 paying customers
  • $79/year license
  • Average 2,000 captions/customer/year
  • Gemini AI provider

Revenue:

100 × $79 = $7,900

Costs:

AI: 200,000 captions × $0.001 = $200
Hosting: $500
Lemon Squeezy fees (5%): $395
Support/dev: $1,000
Total: $2,095

Profit: $5,805
Margin: 73%

Year 2 (Growth)

Assumptions:

  • 500 paying customers
  • $79/year license
  • Average 2,000 captions/customer/year

Revenue: $39,500
Costs: $3,975
Profit: $35,525
Margin: 90%

Year 3 (Scale)

Assumptions:

  • 2,000 paying customers
  • $79/year license
  • Average 2,000 captions/customer/year

Revenue: $158,000
Costs: $15,900
Profit: $142,100
Margin: 90%

This is VERY commercially viable! 🚀


🏆 Best Approach: BYOK (Bring Your Own Key)

Why BYOK wins:

  1. $0 AI costs - You never pay for AI usage
  2. Infinite scale - No cost worries as you grow
  3. Simple pricing - $49/year flat fee
  4. High margins - 80%+ profit margins
  5. User-friendly - Gemini offers FREE tier

Implementation:

# .env.production
# Don't set AI API keys - users provide their own
LEMON_SQUEEZY_API_KEY=your-ls-key # For license validation
# No GEMINI_API_KEY or OPENROUTER_API_KEY needed!

Pricing Page:

PhotoSwipe Pro: $49/year
✓ All Pro features
✓ AI caption generation (BYOK)
✓ Batch processing
✓ Priority support

You provide: Free Gemini API key
Your AI cost: ~$0-10/year (FREE tier available)

[Get Your Free Gemini Key →]

Expected Results:

  • 100 customers = $4,900 revenue, $0 AI costs
  • 500 customers = $24,500 revenue, $0 AI costs
  • 2,000 customers = $98,000 revenue, $0 AI costs

Margins: 80-90% 🚀


Conclusion

✅ Commercial Viability: YES (Highly Profitable with BYOK!)

With BYOK implementation:

  • Fail-secure license validation ✅
  • Gemini AI provider (cost-efficient) ✅
  • Usage caps and rate limiting ✅
  • Fair use policy ✅

Financial viability:

  • 73-90% profit margins
  • Scalable revenue model
  • Controllable AI costs
  • High customer value

❌ Commercial Viability: NO

If you don't enforce licensing:

  • Anyone can use your API for free
  • Unlimited AI costs on your bill
  • No revenue to offset costs
  • Path to bankruptcy

Action Items

  1. IMMEDIATELY: Implement BYOK (code already done! ✅)
  2. REQUIRED: Set LEMON_SQUEEZY_API_KEY in production
  3. RECOMMENDED: Do NOT set GEMINI_API_KEY/OPENROUTER_API_KEY (let users bring their own)
  4. NEXT: Update marketing/docs to explain BYOK model
  5. FUTURE: Create onboarding flow to help users get API keys

Quick Start (BYOK Model)

1. Server Setup:

# .env.production
LEMON_SQUEEZY_API_KEY=your-ls-key
# Don't set AI keys - users provide their own!

2. Update Pricing Page:

PhotoSwipe Pro: $49/year
+ You provide your own Gemini API key (FREE tier)
+ Total cost: $49-59/year

3. Help Users Get API Keys:

4. Profit!

  • You get $49/year per customer
  • You pay $0 for AI
  • 80%+ margins

Summary: The AI caption service is highly commercially viable with proper license enforcement and cost-effective AI providers (Gemini). The security fix implemented today ensures you won't accidentally provide free AI access. Expected margins are 70-90%, making this a profitable feature that adds significant customer value.