skills/vendix-app-architecture/SKILL.md
Vendix app environments, public/private web apps, mobile app boundary, and domain/app type resolution. Trigger: When asking about different apps, environments (VENDIX_ADMIN, ORG_ADMIN, STORE_ADMIN, STORE_ECOMMERCE), mobile boundaries, or domain logic.
npx skillsauth add rzyfront/vendix vendix-app-architectureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to understand Vendix app environments and app boundaries. Detailed settings, panel UI, tenant context, and frontend implementation rules live in their specialized skills.
| App Area | Path | Technology | Scope |
| --- | --- | --- | --- |
| Frontend web | apps/frontend | Angular 20 | Public landing/ecommerce and private admin panels |
| Mobile app | apps/mobile | Expo/React Native | Native/mobile app boundary; detailed mobile skills are a knowledge gap |
| Backend API | apps/backend | NestJS + Prisma | Domain resolution, auth, tenancy, APIs |
AppType is the canonical app environment concept for the Angular web app. It is synchronized with backend app_type_enum and used by domain_settings.app_type, user_settings.app_type, and frontend app config.
| AppType | Access | User | Typical Route |
| --- | --- | --- | --- |
| VENDIX_LANDING | Public | SaaS visitors | / |
| VENDIX_ADMIN | Private | Vendix super admin | /super-admin/* |
| ORG_LANDING | Public | Organization visitors | / on org domain |
| ORG_ADMIN | Private | Organization owner/admin | /admin/* |
| STORE_LANDING | Public | Store visitors | / on store domain |
| STORE_ADMIN | Private | Store staff/admin | /admin/* |
| STORE_ECOMMERCE | Public/customer | Store customers | /, catalog, cart, checkout |
AppEnvironment exists as a compatibility alias for AppType; prefer AppType in new code.
AppConfigService and backend domain resolution.app_type determines which app environment loads.domain_type is legacy/categorization and must not be treated as the primary app selector.user_settings.app_type to select or restore their preferred admin environment.| Concern | Owning Skill |
| --- | --- |
| store_settings / organization_settings structure | vendix-settings-system |
| Branding and settings source of truth | vendix-settings-system / vendix-frontend-theme |
| Sidebar/module visibility through panel_ui | vendix-panel-ui |
| Backend request tenant context | vendix-multi-tenant-context |
| Scoped Prisma access | vendix-prisma-scopes |
| Angular web Signals/Zoneless patterns | vendix-zoneless-signals |
| Expo/React Native implementation | Knowledge gap until mobile-specific skills are created |
panel_ui controls visible menu modules only; it is not backend authorization.apps/mobile is a real Expo/React Native workspace. Existing frontend web skills describe responsive web behavior, not native mobile behavior. When planning mobile work, mark missing guidance as a knowledge gap and propose a focused mobile skill before standardizing patterns.
vendix-core - Repository-wide architecture mapvendix-settings-system - Settings and branding persistencevendix-panel-ui - Admin module visibilityvendix-multi-tenant-context - Backend tenant contextvendix-zoneless-signals - Angular web implementation rulesdevelopment
Mobile app development rules for Vendix Expo/React Native project. Trigger: When editing, creating, or modifying any file under apps/mobile, or when developing mobile-specific features.
development
Feature gating by store subscription state: global store write guard, AI feature gate, Redis feature resolution, quota consumption, frontend paywall interceptor, banner, and subscription UI states. Trigger: When adding feature gates, paywalls, subscription-based access control, protecting store write operations, AI feature gates, or rollout flags.
testing
SaaS subscription billing for Vendix stores: plan pricing, invoices, Wompi platform payments, manual payments, partner commissions, payouts, proration, and dunning. Trigger: When creating SaaS invoices, working with partner rev-share, margin/surcharge pricing, invoice sequence allocation, partner payout batches, subscription payments, manual payments, or dunning flows.
development
Periodic quota counters with Redis, UTC period keys, Lua-based idempotent AI quota consumption, request-id deduplication, and post-success consumption. Trigger: When building quota counters, enforcing monthly/daily feature caps, or reusing AI quota patterns for uploads, emails, exports, or rate-limited features.