Client editing for Lovable
Let clients edit your Lovable site.
The site took an afternoon in Lovable. Now every "can you change the opening hours" means opening the project again, prompting, and hoping the regeneration leaves the rest of the page alone.
Tusk is a client editing layer for sites you already built. You keep the code, the repo and the hosting. Tusk marks the text, photos and downloads the client may change, and the client changes them on their own live page. Nothing of Tusk runs between a visitor and the site.
Getting the site out of Lovable
- In Lovable, connect the project to GitHub (Settings → GitHub → Connect). Lovable pushes the React source to a repo you own and keeps it in sync.
- Deploy that repo on your own host: Vercel, Netlify or Cloudflare Pages. Lovable’s own hosting stays as a preview if you like; the client’s site runs from your deploy.
- Open the repo in Claude Code, Cursor or Codex. That is where Tusk connects, because Lovable itself cannot run an MCP.
Connecting it, step by step
- Add the Tusk MCP to your AI tool (one line of JSON, below).
- Log in once, for this one site: npx @tuskcms/mcp login --site <slug>. It prints a link; open it and press Approve & connect. The token is issued for that site and expires by itself.
- Tell your tool: “Connect this site to Tusk CMS.” It marks the editable text, photos and downloads in the JSX, adds the two-file build step, sets up the deploy hook with you, publishes once and checks it went live.
- Invite the client from the Tusk dashboard. They get an email, continue with Google or Microsoft, and edit the words on their real page.
The MCP config, for Claude Code, Cursor, Codex or Windsurf. Nothing to install: it runs from npm on demand.
{ "mcpServers": { "tusk": { "command": "npx", "args": ["-y", "@tuskcms/mcp"] } } }No MCP? Paste this one line into any AI tool that can read a URL and edit files:
Connect this site to Tusk CMS. Read https://tuskcms.com/llms-full.txt first and follow it exactly.
Start from a template
The easiest connect is the one with nothing to mark afterwards. Paste this as the first prompt in Lovable, fill in the brackets, and the site is born with the marks Tusk needs. Then follow the steps above to connect it.
Build a three-page website (home, work, contact) for [business name], a [what they do] in [city]. Plain, fast, mobile-first. IMPORTANT: this site will be edited by the client through Tusk CMS, so mark every element they may change with a data-tusk attribute named page.field, e.g. <h1 data-tusk="home.heading">, <p data-tusk="home.lead">, <img data-tusk="home.hero">, <a data-tusk="contact.brochure" href="…">. Repeated cards use data-tusk-list="page.field" on the container, data-tusk-item on one card and data-tusk-field="title" on its parts. Site-wide text (phone, footer address) uses globals.field. Rules: https://tuskcms.com/llms-full.txt under “Mark the HTML”. Do not invent a CMS, database or admin page: the marks are all Tusk needs.
Already have code? The Tusk starter repo shows what a marked-up site looks like: three pages, plain HTML, the build step and deploy config already in place. Copy its patterns into yours.
What the client gets
- Their own login. They open an editor with a live preview of their real website beside the fields you marked, click a heading, a paragraph, a photo or a download, change it, and press Publish.
- Nothing of yours. No repo, no Lovable, no code, no layout or styles. What you did not mark cannot be edited.
- History of the last 30 days, with any version restored as a draft, so a bad edit is never permanent.
- A Publish that reaches the live site through your own host, and a dashboard that tells you both whether it did.
What you keep
- The codebase, the hosting and the deploy. Tusk triggers a deploy hook you own, and that link, encrypted, is all it holds of your host.
- A static site that stays static: published content and images are written into your build by two zero-dependency scripts. The deployed site never calls Tusk.
- The retainer. The client pays you; you pay Tusk by site. Clients never pay for their login.
- The exit. Export gives you a site’s words, photos, fields and 30 days of versions as files; disconnect cuts every tie and the site keeps serving.
Questions Lovable developers ask
Will a later Lovable regeneration wipe the Tusk markup?
The marks are ordinary data-tusk attributes in your JSX. If you keep prompting Lovable on the same components it can drop them like any other attribute, so after a regeneration run the connect prompt again; it re-marks in seconds and the published content is untouched. Most studios stop regenerating once the client edits their own content, which is the point.
Does the client need a Lovable seat?
No. The client never sees Lovable, GitHub or a prompt. They log in to Tusk, click the text on their live site, change it, and press Publish.
Do I have to leave Lovable hosting?
Tusk needs a build it can rebuild: any host with a deploy hook works (Vercel, Netlify, Cloudflare Pages, or your own CI). Lovable’s built-in publish has no hook, so the site the client edits should run from your deploy of the GitHub repo. Lovable stays connected to the same repo for the next big change.
Also built with v0, Bolt, Replit? Tusk works the same way. All builders: v0, Bolt, Replit, Claude Code, Codex, Cursor, Windsurf, Next.js, Astro, Eleventy, Framer, plain HTML, and any site with a build step or deploy hook.