Skip to content

Sharing & Persistence ​

Generative UI apps in Astonish are designed for collaboration. Apps start as personal creations and can be progressively shared with your team and organization.

App Visibility Levels ​

LevelWho Can SeeWho Can Edit
PersonalOnly youOnly you
TeamTeam membersOnly you (others can fork)
OrganizationAll org membersOnly you (others can fork)

Personal Apps ​

Every app starts as personal. It appears in your Apps tab in Studio and is invisible to others. Your app state (via useAppState) is fully private.

You:    "Save this as 'My Sprint Board'"
Agent:  [saved] App "My Sprint Board" saved to your personal apps.

Publishing to Team ​

Share an app with your team so they can use it and build on it:

You:    "Publish 'Sprint Board' to the engineering team"
Agent:  [published] "Sprint Board" is now visible to the Engineering team.
        Team members will see it in their Apps tab and can fork their
        own copy to customize.

Published apps are read-only for team members. The original author retains edit control. Team members interact with the live app and have their own independent state.

Forking ​

Any team or org app can be forked to create an independent personal copy:

You:    "Fork the team's Sprint Board and rename it 'My Board'"
Agent:  [forked] Created "My Board" from "Sprint Board".
        This is your personal copy — edits won't affect the original.

Forks are fully independent. Changes to the original do not propagate to forks, and vice versa.

Promoting to Organization ​

Team apps can be promoted to organization-wide visibility by admins:

You:    "Promote 'Sprint Board' to the organization"
Agent:  [promoted] "Sprint Board" is now available to all organization members.

This is useful for standardized tools — onboarding dashboards, incident response panels, or company-wide metric trackers.

State Isolation ​

A critical design principle: app definitions are shared, but state is always personal.

When a team uses the same published app:

  • Everyone sees the same UI (same component code).
  • Everyone has their own useAppState data — Alice's tracked habits don't appear in Bob's view.
  • useAppData results depend on the user's own connected credentials and permissions.

This means a single shared "Time Tracker" app gives each team member their own private time log, while the team lead could build a separate "Team Hours" app that aggregates via API.

The Apps Tab in Studio ​

The Studio sidebar organizes apps into sections:

  • Recent — Last 5 apps you interacted with.
  • Personal — All your private apps.
  • Team — Apps published by team members.
  • Organization — Org-wide apps (if applicable).

Each app entry shows its name, a description, and a last-modified timestamp. Click to launch; long-press or right-click for options (rename, publish, fork, delete).

Deleting Apps ​

Personal apps can be deleted at any time. Published apps can only be unpublished by their author — this removes team/org visibility but retains the personal copy.

You:    "Delete my Time Tracker app"
Agent:  [deleted] "Time Tracker" has been removed. Any persisted state
        has been cleared.

Next Steps ​