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
-
Draft by default
The duplicated page is created in draft state (not published), so it can be reviewed before going live.
-
Pages only
Duplication is available only for Pages, not for collections, files, links, folders, or other resource types.
-
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.
-
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.
-
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).
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
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
Draft by default
The duplicated page is created in draft state (not published), so it can be reviewed before going live.
Pages only
Duplication is available only for Pages, not for collections, files, links, folders, or other resource types.
Independent file/image assets
For every image and file referenced by the duplicated page’s content:
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.
Consistency
The duplicated page’s content must reference the new asset UUIDs, not the originals.
Technical / product notes
Open questions (optional)