Defines the strategy, rules, and implementation patterns for Urbanito's Premium tier.
This skill governs the differentiation between Free and Premium users in Urbanito. It ensures that premium features are implemented consistently, securely, and with a clear value proposition.
| Feature Category | Free Tier | Premium Tier |
|---|---|---|
| Audio | Standard Web Speech API (System TTS). | Neural AI Voices (Gemini/ElevenLabs). Character personas. |
| Visuals | 1 cover image per POI. | Deep Dive Gallery (Interiors, Archives) + AI Reconstructions (History view). |
| Connectivity | Online Only (Requires Data). | Offline Mode. Download full routes for airplane mode usage. |
| Interaction | Passive listening. | AI Concierge: Ask context-aware questions about the POI. |
| Comfort | Standard routing. | Smart Detours (Coffee, Restrooms, Vibe checks). |
usePremium hook must be used to check status.if (premium) logic inside every component. Use wrapper components (see below).LocalStorage (for web) and SecureStorage (for native).user_tier = 'premium' and expiry_date.PremiumGate ComponentWrap premium-only UI sections with this component.
<PremiumGate
fallback={<LockIconWithTooltip text="Premium Feature" />}
source="ai_reconstruction" // For analytics
>
<AiReconstructionView />
</PremiumGate>
usePremium Hookconst { isPremium, unlockWithCoupon } = usePremium();
Rule of Thumb: If it costs us significant money (API calls to LLMs, high-res image hosting) or saves the user significant stress (Offline mode), it belongs in Premium.