Sharing and cloning
Share a read-only link, let people comment on it or clone your project, or duplicate it yourself.
On this page
There are four different things people mean by sharing a project, and they are separate controls. Copying a link lets a workspace member open the project. Sharing turns on a read-only link for anyone. Commenting lets those people read and leave comments. Cloning lets them make their own copy.
Copy a link
Two of the items in a project's card menu copy links, and they are not the same link.
Copy Project Link copies the dashboard address of the project. Only people in the workspace can open it. Sending it to someone outside the workspace gets them nowhere unless you also share the project.
Copy Published App Link copies the live web address of the published site, either its free address or your primary domain when a custom domain is connected. Anyone can open it. Open Published Project opens that same address in a new tab. Both are disabled until the site has been published once or a custom domain is connected.
Share a read-only link
Open the project and choose Share in the header. A panel titled Share Project appears.
The first switch is Share a read-only link, described as Anyone with the link can view your preview, including unpublished changes. Turn it on and a copy box appears underneath with the link to hand out, and a note under the box reads Viewers see your changes as they happen, even before you publish.
What viewers see
The link shows your preview, the same working copy you see in the editor, rather than the published site. Viewers get your unpublished changes too, and it updates live: while chat is working they watch its changes land as they happen, including a page that is only half built. The link works before you have ever published.
Your preview may not be running when someone opens the link. Opening it starts the preview, the same way opening the project does for you, and the viewer sees Starting preview... until it is up. If the preview cannot be shown, a site that has been published is shown in its place. Otherwise the viewer gets Preview unavailable, with This site cannot be shown right now. When you turn the link off, or the site is deleted, anyone still watching sees Preview unavailable within about 30 seconds.
A viewer who leaves your live preview out of sight for 30 minutes, or on screen with no clicks, typing or scrolling for 2 hours, sees Preview paused while you were away at the top of the preview. Continue, or any click or key press, starts it again. When you step away covers the same rules in the editor.
While someone has the link open, they appear in the avatars at the top of your editor, next to your teammates, with Viewer in their tooltip when they are signed in to Modulify and Guest when they are not. Someone without an account shows under a made up name, such as Scarlet Hawk, the same name they comment under if you let viewers comment. They drop out of the avatars about a minute after they close the link.
The preview's own address still only loads inside Modulify, so this link is the way to show someone your work in progress. Publishing has not changed: it is still what updates the site at your web address, and visitors who go there see only what you have published.
Anyone holding the link sees everything you and chat change, as it changes. When you want to work without an audience, turn Share a read-only link off, turning commenting and cloning off first if they are on.
Let viewers comment
With sharing on, a switch appears under the link: Viewers can comment, described as Anyone with the link can read every comment and add their own. Turning it on lets anyone with the link read the comments on your preview and add, reply to and react to their own, with or without a Modulify account. See Comments.
Turning commenting on forces sharing on. While it is on, the Share a read-only link switch is disabled with the tooltip Disable comments first., or Disable cloning and comments first. when cloning is on too. Turning commenting off keeps every comment already left, for your team.
Viewers see every comment on the project, including the threads your team wrote for each other before you turned this on. Read them first.
Let people clone it
With sharing on, another switch appears: Viewers can clone this project. Turning it on gives anyone with the link a Clone button on the project, which drops a copy into their own workspace.
Turning cloning on forces sharing on, since a link nobody can open cannot be cloned. The reverse is guarded too: while cloning is on, the Share a read-only link switch is disabled with the tooltip Disable cloning first., or Disable cloning and comments first. when commenting is on too.
Choose what the copy includes
By default a clone gets your structure and none of your content. Three more switches appear once cloning is on.
Include database content, described as Copy your data, not just the structure. This one only appears when the project has a database.
Include uploaded files, described as Copy your public files. Private files stay with you. A clone only receives the files that are public in Storage. Private files are never copied into someone else's workspace, whatever this switch says. If the copy should come with a file, make that file public before people clone the project.
Include environment variables, described as Copy your real values, not placeholders. Leave it off and the variable names still come across, each with the value VALUE_HERE for the cloner to fill in. Turn it on and your actual values go with every copy, so think before you do.
With database content on, a Choose collections row appears. Opening it gives three modes:
| Mode | What it copies |
|---|---|
| Everything | The content of every collection |
| Only these collections | The ones you pick, nothing else |
| Everything except these | Everything but the ones you pick |
Turning cloning back off resets all of these, so re-enabling it later starts from the safe default again.
Every switch in this panel saves as you toggle it. There is no separate save button.
Duplicate a project yourself
Duplicate in the card menu makes a copy in the same workspace. The copy is named after the original with (Duplicated) on the end.
A duplicate is your own project, so it takes everything regardless of the cloning switches above: the full database content, every uploaded file, public and private, each with the same visibility it had, and the real values of the environment variables. It arrives unpublished and without the original's custom domains, and it is not itself shared, open to comments or cloneable. A duplicate of an archived project is not archived, so it shows in your projects list.
Because a duplicate always copies the database content, a project on the newer database pauses its database for a moment while it is duplicated, and the duplicate can be refused for the reasons in Copying a database.
A duplicate is a new site, so it needs a free site slot. If your plan has none left you are offered an extra site or an upgrade before it proceeds.
Copying a database
A copy carries the tables of your database, with their columns, relations and indexes, and on the newer database its triggers and views too. It carries the rows as well when Include database content is on, and always for a duplicate. With the switch off the tables arrive empty, but the field settings that tell the CMS how to show each column come along, so the collections of the copy look the same as yours. This works on either database, and the copy runs on the same database as the original.
Copying the rows starts with a snapshot of the whole database, taken the same way as a database backup. On the newer database that means your database stops answering for a moment every time someone copies the project with its content. A small database is copied almost at once, and a clone without database content does not pause it at all.
One database is copied at a time across the whole platform. A copy that includes the rows waits up to a minute for the copy ahead of it, whichever site that copy is of, and for a copy of the same site that is still being made, and is refused if it is still waiting after that. Copying the rows also has to finish within 100 seconds all told, any waiting included, or the copy stops.
On the newer database, a copy is refused in these cases, and whoever made it sees the reason in a Clone failed or Duplication failed toast:
| When | Message |
|---|---|
| The database has a full text search table | This site cannot be copied because its database has a full text search table! |
| The copy includes the rows, and the database is larger than 25 MB | This site cannot be copied because its database is larger than the 25 MB copy limit! |
| The copy includes the rows, and its exported SQL comes to more than 150 MB | This site cannot be copied because its exported SQL is larger than the 150 MB copy limit! |
| The copy includes the rows while a backup of the database is being made | The database of this site is being backed up right now. Try again in a few minutes! |
| The copy includes the rows, and another copy with its rows is still being made after a minute of waiting | Another copy is being made right now, so this site was not copied. Try again in a few minutes! |
A full text search table blocks every copy, with or without content, until it is dropped from the database. If the database cannot be reached, the copy stops with The database of this site could not be reached, so it was not copied. Try again in a moment!, and a database that no longer exists stops it with The database of this site could not be found, so it cannot be copied!
A copy that fails part way through names the step that failed:
The database for the copy could not be created, so the site was not copied. Try again in a moment!The database of this site could not be read for the copy, so the site was not copied. Try again in a few minutes!The content of this site could not be written into the new database, so the site was not copied. Try again in a few minutes!The tables and fields of this site could not be recreated in the new database, so the site was not copied. Try again in a few minutes!The tables left out of the copy could not be emptied, so the site was not copied. Try again in a few minutes!Copying the database of this site took too long, so the site was not copied. Try again in a few minutes!when the copy ran past its 100 seconds
Anything else while copying reads Something went wrong while copying the database of this site! A copy that is refused, or fails part way through, leaves no new project behind in the workspace.
What a clone or duplicate does not carry
Whichever route the copy took, some things stay with the original:
- It is not published, and it has no publish history
- It has no custom domains
- Its own sharing, commenting and cloning switches start off
- None of the original's comments
Next
- Templates is the other side of this, cloning someone else's project.
- Publish a site is what updates your live address. A shared link does not wait for it.
- Transfer a project hands the project over rather than copying it.