Skip to content

Studio: Duplicate Page #1915

@adriangohjw

Description

@adriangohjw

Problem

In apps/studio, there is no way to duplicate a page. Users who want a similar layout or content must recreate pages manually, which is slow and error-prone.

Scope

  • In scope: Duplication for Pages only (the primary page entity users edit in Studio).
  • Out of scope: Collections, standalone files, links, folders, and other non-page resources. Do not extend this behaviour to those types in this issue unless explicitly specified later.

Proposed behaviour

Provide an action (e.g. from the dropdown for the page) that creates a new page copied from the selected page, with content and structure preserved where the product supports it today.

Acceptance criteria

  1. Draft by default
    The duplicated page is created in draft state (not published), so it can be reviewed before going live.

  2. Pages only
    Duplication is available only for Pages, not for collections, files, links, folders, or other resource types.

  3. Independent file/image assets
    For every image and file referenced by the duplicated page’s content:

    • The system creates a new copy of each asset (new backing record / storage association as appropriate for the product).
    • Each copy gets a different UUID from the original (and from other duplicates), so assets remain tied to the specific page (resource) they belong to, not shared site-wide by accident.
  4. Deletion safety
    Deleting the original page (or its assets) must not remove assets that belong only to the duplicate, and vice versa—behaviour consistent with “one resource per page” file semantics.

  5. Consistency
    The duplicated page’s content must reference the new asset UUIDs, not the originals.

Technical / product notes

  • Files are modelled as bound to a specific resource (page); reusing the same file UUID across two pages would break that invariant and could cause cascade deletes or wrong ownership when one page is removed.
  • Implementation should walk page content (whatever structure Studio uses: blocks, JSON, etc.) and duplicate each referenced file/image, then rewrite references to the new IDs.

Open questions (optional)

  • Naming convention for the duplicate (e.g. “Copy of …”, suffix, or prompt).
  • Whether navigation/menu entries that point to the page should be duplicated (often no for v1).

Metadata

Metadata

Assignees

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