Skip to content

[RFC] Two-Tier App Support Model (Flagship vs. Community Apps) #110

Description

@BeSovereign

RFC: Two-Tier App Support Model (Flagship vs. Community Apps)

1. Goal

To reduce platform support costs and prevent resource exhaustion on low-end VPS instances (XS/S), we propose dividing the application catalog into two tiers:

  1. Flagship Apps (Official): Fully tested, secure, and officially supported. Enabled by default.
  2. Community Apps (Experimental): Community-contributed apps that run unsupported/best-effort. Hidden behind a user toggle and warning disclaimer.

2. Proposed Architecture & Implementations

A. Metadata Level (app-repository)

Extend the Pydantic schema in app_meta.py (specifically StoreInfo class) to support a new field support_tier:

"store_info": {
  "support_tier": "flagship" | "community",
  "is_featured": true
}
  • Default value for support_tier is "community" to ensure new or untested apps are disabled by default.

B. Shard Core API Validation (freeshard)

Update /shard_core/data_model/app_meta.py to parse the new support_tier property from metadata schemas.

C. Web Terminal UI (web-terminal)

  1. App Store Toggle: A toggle switch "Show Community Apps" in Apps.vue (disabled by default).
  2. Disclaimer Modal: Enabling the toggle prompts the user to accept a warning disclaimer outlining that Community apps are unsupported, potentially unstable, and may exhaust VPS memory.
  3. Badging: Display distinct badges ([ Flagship ] vs. [ Community ]) on application card entries to make support status obvious.
  4. LocalStorage Persistence: Store the toggle state in localStorage to avoid showing the disclaimer repeatedly.

3. Visual Mockups

Legacy UI (Current Implementation)

This mockup visualizes the feature integrated into the current Bootstrap 4 layout of the web-terminal (using the top navigation bar and default light-grey card styling):

Legacy UI Mockup

Target UI (Tailwind/Astro Redesign)

This mockup shows how the same feature will render once the dashboard is aligned with the modern design guide (using dark mode, sidebar navigation, and glassmorphic cards):

Target UI Mockup


4. Next Steps / Action Items

  • [app-repository] Add "support_tier" metadata to all 42 app blueprints.
  • [freeshard] Implement support_tier property validation in the Pydantic StoreInfo model.
  • [web-terminal] Implement the "Show Community Apps" toggle, warning modal, and badge UI in Apps.vue and AppStoreEntry.vue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions