What the script does
- On each page view it loads the copy your client has published for that page and applies it to the matching elements after the page loads. Nothing in your source or your repository changes.
- It finds headings, paragraphs, list items, table cells, labels, buttons and images on its own. Links are skipped unless you opt one in with
class="rcf-editable-link", so nobody can rewrite your navigation by accident. - Opt an element out with
data-rcf-ignore, opt a container in withdata-rcf-content, and give an element a stable identity withdata-rcf-id(see “When you deploy” below). - The editing interface only appears for someone signed in as an editor of the site. Visitors only ever see the published text.
- It fails quietly: if it cannot load or is blocked, the page keeps its own HTML.
The snippet
Your client sends you the exact tag from their dashboard. It looks like this (placeholders here, not a working install):
<script
src="https://www.recopyfa.st/embed/recopyfast.js"
data-site-id="YOUR_SITE_ID"
data-site-token="YOUR_SITE_TOKEN"
data-api-url="https://www.recopyfa.st/api"
data-ws-url="wss://recopyfast-ws.fly.dev"
></script>src: Loads the ReCopyFast widget. Keep the generated URL.data-site-id: Identifies the website you registered.data-site-token: Authorizes the installed widget's site requests. It is designed to appear in page HTML; it is not an editor sign-in credential.data-api-url: Tells the widget where to read and save content.data-ws-url: Enables realtime updates. Some deployments omit it; preserve what the dashboard generated.
The site token is public by design: it sits in the page HTML and is only accepted from the registered domain. Your client can revoke it by regenerating the snippet in their dashboard, after which the tag must be replaced. Never substitute any other key or token into it.
Where to paste it
One copy per page, ideally in the shared footer just before </body>, then publish or deploy. Do not add it a second time through a tag manager.
- WordPress: the free WPCode plugin, see the WordPress guide.
- Webflow, Framer and other builders: their site-wide custom code setting (end of
<body>), then publish. Some builders only allow custom code on paid plans. - React, Next.js and other single-page apps: load it after hydration and keep every attribute. History-mode routing is followed; hash routes are not supported. Details in the installation guide.
Content Security Policy
If the site sends a CSP, the snippet needs these two sources:
script-src https://www.recopyfa.st
connect-src https://www.recopyfa.st wss://recopyfast-ws.fly.dev- Add them to your existing directives (or to
default-src's sources, if that is the fallback) rather than replacing what the site already allows. - The realtime connection is optional: without the websocket source the widget falls back to plain HTTP requests.
- The editing interface adds its own
<style>elements while someone edits, and a swapped image loads from the URL it was uploaded to. If either is blocked, report the exact directive from the browser console rather than adding a broad'unsafe-inline'or wildcard.
Verify the install
- Open the published page on the registered domain.
- Check that exactly one
recopyfast.jsloads and that the page, its links and its forms still work. - In the console,
window.RECOPYFAST_APIshould behttps://www.recopyfa.st/api. - Your client's dashboard flips the site from “Awaiting install” to “Live” within about 10 seconds of that page view. A reply of “done” is enough for them to check.
How editing works for your client
- They open their site through “Edit website” in their dashboard, or through the editor sign-in with a code emailed to them. No shared login.
- They click a piece of text and type.
- Save keeps a draft. Publish makes it public. Every change is kept in their history, and they can revert one.
Want to approve changes first? If you hold the ReCopyFast account, invite your client as an editor with edit but without publish permission: their saves stay drafts until you publish them. Inviting editors depends on the account's plan.
When you deploy
Published copy is matched to elements by their position in the page, or by data-rcf-id when an element has one. Today that means:
- If the element stays where it is, your client's published text keeps showing after your deploy, even if you changed that same text in source. Their edit wins.
- If you move or restructure the element, its published text no longer matches and the page shows your source text again. There is no warning for this yet. Your client's history still has every change, so either of you can re-apply it.
- For copy your client edits often (hours, prices), add an author-written
data-rcf-idto keep its identity across redesigns.
Published copy is applied after the page loads, so the original HTML can show briefly, and crawlers that do not run JavaScript read the original. Keep SEO-critical headings in source.
Remove it
Restore the previous website deployment or remove the snippet from its installation point and republish. Confirm the script no longer loads on the intended pages. Removing the snippet does not revoke editor access or delete content stored in ReCopyFast. Manage those separately in the dashboard.
Installing it for your own clients? Start your free trial and register their site yourself. Questions: support@recopyfa.st.