Editor & Composition


Take an AI draft, refine it in a chat with visible diffs, drop in a hero image, and publish it — all from one screen.

TL;DR

  • What it is — the single workspace where a generated blog becomes a publishable one: a split-pane editor with live preview, a chat thread with Accept/Reject diffs, an image panel, and a toolbar that handles cross-links, video spawn, and the final publish.
  • Who it's for — writers, editors, marketing leads, and agency collaborators. Every hand that touches a blog after generation works inside this one screen.
  • Top outcome — promote an AI draft to a live post on your marketing site in about three minutes, without leaving the page.

At a glance

Plan tiersBundled with Lodgestory CRM on Growth and above.
Who can use itOwners, Admins, Editors. Viewers read-only.
What you produceA publishable blog post with SEO metadata, hero image, and optional avatar video.
Limits you'll seeSave is manual — no autosave, so Save before switching tabs. Chat can be cancelled mid-response.
APIPartner-visible publish happens via the CRM's public blog API (see Publishing to CRM).

How to find it

From the blog list: Dashboard → Blogs → click any row. You land on the editor.

From a source: Dashboard → click a domain → pick a source → Suggest new blogs → pick a suggestion → Generate. Content Studio drops you straight into the editor when the draft is ready.

Direct URL: /editor/<blog-id>.

Screenshot [SCREENSHOT: editor-nav.png — sidebar → Blogs → clicking a row, with the target row outlined]

What is the Editor?

The problem it solves

AI-drafted content is never finished on the first pass. It's usually 70% right in structure and 40% right in voice. Most tools either give you a read-only preview — so you export to Word or Google Docs to edit — or a rich-text editor that chokes on the Markdown, Open Graph tags, and structured-data fields a publishable blog actually needs. Either path means copy-paste, context loss, and no path back to the AI for iterative refinement.

The Content Studio editor keeps generation, refinement, media, SEO metadata, and publishing on a single screen. The left pane is the Markdown body. The right pane flips between an AI chat with diffs and an image panel. The toolbar owns status changes, cross-linking, video spawn, and the final Push. You never leave this page between "a draft exists" and "it's live on your marketing site."

What you get

  • Refine by asking, not by typing. "Shorten the intro." "Add a section on group bookings." The AI rewrites; you see the diff; you Accept or Reject.
  • One source of truth. What you see in the editor is exactly what ships to your marketing site. No hidden component soup.
  • Explicit saves. Every save is intentional. A visible "unsaved changes" indicator warns you before you tab away.
  • Hero image in line. Generate or upload an image from the same screen; set it as the featured image for social cards and listing thumbnails.
  • One-button cross-linking. Pull in internal links to your other blogs without hunting through the library.
  • One-button publish. Flip status to Ready, click Push, and the post is live within seconds.
  • Avatar video in a click. Kick off a short-form video from the same blog; it renders in the background.

How it's different

  • Diff-based chat, not blind overwrite. Most AI editors replace your content silently when you ask for a change. Content Studio shows you exactly what changed, line by line, and you decide whether to keep it.
  • Plain Markdown, not WYSIWYG soup. You see exactly what will ship. No hidden components, no paste-from-Word HTML accidents. Tables, images, and inline code render in preview.
  • Image panel next to the chat. Generate a hero image without leaving the page and insert it at the cursor with one click.
  • Streaming chat you can cancel. Watch the AI's answer arrive token by token, and cancel mid-response if it's going the wrong way — rare in AI content tools.

Customer scenarios

  1. "The intro is too long." Type "Cut the intro to two sentences; keep the hook." into chat. Watch the response stream in, see the diff (4 lines removed, 1 added), click Accept, click Save.
  2. "Our call-to-action changed." Update the call-to-action on your brand profile. Back in the editor, chat "Update the CTA block to match the new profile." The AI rewrites the CTA. Accept.
  3. "We need a hero image in five minutes." Open the Images tab → Generate with a prompt hint → pick the result → Set as feature → click Insert into body. Save.
  4. "Link this to our other villa blogs." Click Cross-link in the toolbar. Content Studio picks matching blogs from your library and inserts links at natural anchor points. Save.

How it fits with the rest of Lodgestory

  • Upstream: the draft you're editing came from Content Studio's AI generation pipeline. You can still adjust author, category, tags, and metadata here.
  • Sideways: Generate Video on the toolbar kicks off an avatar video from this blog.
  • Downstream: Push hands the finished post to your Lodgestory marketing site.

Screenshot [SCREENSHOT: editor-landing.png — split pane with Markdown left, chat right, toolbar at top, hero image inserted]

Core concepts

TermWhat it means
DraftA blog that's been generated but isn't ready to publish.
ReadyA blog that's been reviewed and is cleared for publish. Flipping to Ready doesn't publish it — Push does.
PublishedLive on your marketing site.
StatusThe lifecycle label on every blog: Draft → Ready → Published. The editor enforces the allowed transitions.
Chat turnOne exchange in the refinement thread — your message and the AI's reply. Every turn is saved so you can reload the editor later and see the history.
Diff previewThe line-by-line comparison shown on each AI reply. You see +3 / −5 above the bubble and two buttons: Accept and Reject.
Cross-linkAn internal link the AI inserts from this blog to one of your other blogs — used to strengthen your library's interconnections.
Feature imageThe primary image for the post. It shows up in social cards, listing thumbnails, and the hero at the top of the page. One per blog.
Preview modeToolbar toggle that swaps the Markdown editor for a rendered preview of how the post will read.

Quick Start — refine and publish in three minutes

Step 1 — Open a generated blog

Dashboard → Blogs → click a row with status Draft. You land in the editor.

Screenshot [SCREENSHOT: ed-qs-1-open.png]

Step 2 — Read the draft in preview mode

Toolbar → Preview. Scroll top to bottom. Make a note of anything to change.

Screenshot [SCREENSHOT: ed-qs-2-preview.png]

Step 3 — Ask for a change in chat

Flip back to Edit → right pane → Chat → type "Shorten the intro to two sentences and add a pull quote from the first source." → Enter.

The response streams in. When it finishes, a diff preview appears with +3 / −5 line counts.

Screenshot [SCREENSHOT: ed-qs-3-chat.png]

Step 4 — Accept the diff

Click Accept on the chat message. The body updates in the left pane. (If you don't like it, click Reject — nothing changes.)

Screenshot [SCREENSHOT: ed-qs-4-accept.png]

Step 5 — Save

Top-right Save button. The blog is persisted. The list views reflect the new title on next render.

Screenshot [SCREENSHOT: ed-qs-5-save.png]

Step 6 — Promote to Ready

Status dropdown in the toolbar → Ready → Save.

Step 7 — Push

Push button in the toolbar. Within a second the post is live at /resources/blog/<slug> on your marketing site.

Screenshot [SCREENSHOT: ed-qs-7-pushed.png]

Expected result: the blog list now shows this entry under Published, and hitting the public slug returns the full post with SEO metadata.

How it works

  1. You open a blog. The editor loads the title, body, images, and the full chat history.
  2. You type a message in chat. The AI's answer streams in token by token with a visible Cancel button. When it finishes, a diff preview appears above two buttons: Accept and Reject.
  3. Accept swaps the new title and body into the editor. Reject discards. Either way, the turn is saved in your chat history.
  4. You generate or upload images from the right pane. One image per blog is the feature — the one that shows up in social cards and list thumbnails.
  5. You click Save whenever you're ready. There is no autosave. The "unsaved changes" indicator on the toolbar tells you when local state differs from the last save.
  6. You promote status from Draft to Ready in the dropdown, then click Push. The blog is handed to your Lodgestory marketing site and appears on the public URL within seconds with full SEO and AI-crawler metadata.

You never touch raw code, a third-party hosting dashboard, or a separate video editor.

Features in depth

Split-pane layout

The left pane is the Markdown editor (or a rendered preview, depending on the toolbar toggle). The right pane is tabbed: Chat and Images. Resizing the window adjusts the editor height; scroll position is preserved between Edit and Preview modes on the same session.

Markdown toolbar

The toolbar groups buttons for text formatting, structure, inline elements, and tables:

GroupButtons
TextBold, Italic
StructureHeading 2, Heading 3, Bullet list, Numbered list
InlineLink, Image, Inline code, Blockquote, Divider
TablesTable builder — pick rows × columns, optional header row, alignment per column

Selecting text and clicking a format button wraps the selection. Clicking with nothing selected inserts a template with the cursor placed between prefix and suffix. The Image button opens the Images tab; clicking Insert into body on any image drops it at the cursor.

Tip: there's no Ctrl+S shortcut. Muscle memory from Word or Google Docs is a common source of lost changes — get in the habit of clicking Save before switching tabs.

Chat with diffs

Right pane → Chat tab. The default workspace for refinement.

  1. You type a message and press Enter.
  2. The AI's answer streams in token by token with a blinking cursor. A Cancel button appears on the in-flight message — click it to stop the response mid-stream.
  3. When the response finishes, Content Studio compares the old and new title and body and shows a diff preview — +3 / −5 line counts — above two buttons: Accept and Reject.
  4. Accept swaps the new content into the editor. Reject discards the change. Either way, the turn stays in your chat history.
  5. You still need to click Save on the toolbar to persist the change.

Persistence: chat history is saved server-side. Reloading the editor rehydrates the full thread.

Gotchas:

  • Accept is final within the session. If you regret an accepted diff, type another chat message to revise, or manually edit the body.
  • Rejecting does not delete the chat turn. Your message and the rejected response stay visible so you can refer back.
  • If the model's answer is purely conversational — no edit to the body — the Accept/Reject buttons are hidden.

Screenshot [SCREENSHOT: ed-chat-diff.png — chat bubble with +3/-5 diff summary and Accept/Reject buttons]

Images panel

Right pane → Images tab. Lists every image attached to this blog.

  • Generate opens a prompt dialog. Add a context hint like "sunset over a boutique villa, wide shot, warm light" and submit. The AI returns a hero image; it lands in the grid.
  • Upload accepts an image file up to 10 MB.
  • Per image: Set as feature, Edit alt text and caption, Insert into body, Delete.

What "feature" means: the featured image is the one used for social-media previews, structured data, and listing thumbnails on your marketing site. You should have exactly one per blog; the UI enforces this.

Tips:

  • AI-generated hero images are expensive per image. Prefer upload for branded creative you already have.
  • Alt text matters for accessibility and improves the structured data on the public page.

Cross-link generation

Toolbar → Cross-link.

Content Studio scans your other blogs for keyword overlap and inserts internal links at natural anchor points inside the body. Runs best on a stable body — run it after the blog's structure is final, not during heavy refactoring.

Tips:

  • You need at least three to five other blogs in your library before cross-linking produces good results.
  • Re-run cross-linking after adding more blogs to the library. The matches improve as the library grows.

Generate Video

Toolbar → Generate Video.

Opens a dialog with avatar, voice, template, and target duration. Submit, and Lodgestory turns your blog into a short video through a multi-stage background pipeline — it writes a screenplay, records narration, creates avatar footage, sources B-roll, composes, and renders. Runs in the background; check back in about 10 minutes.

See Media Generation for the full controls (Pause, Resume, Cancel, Retry) and the library of reusable avatars, voices, and templates.

Copy Markdown

Toolbar → Copy Markdown. Puts the body on the clipboard. Useful for exporting to another platform for archival.

Preview toggle

Toolbar → Preview / Edit.

Preview replaces the editor with a rendered view of the post — images, tables, and formatting show up the way readers will see them. It's a sanity check, not a pixel-perfect match to the public site (different fonts, different CSS, no site chrome).

Tip: if you embed a custom component tag in the body, it appears literally in preview. That's expected — the live marketing site renders it fully.

Status dropdown

Toolbar → the status badge opens a dropdown.

  • Draft ⇄ Ready. Flip between these as you review.
  • Ready → Published happens only by clicking Push, not by picking it from the dropdown.
  • Viewer role sees the dropdown disabled.

Save

Toolbar → Save. Persists everything you've changed in the editor — title, body, metadata, status.

Gotchas:

  • No autosave. The "unsaved changes" indicator warns you when local state differs from the last save. Click Save before switching tabs.
  • Save does not change status. Use the dropdown for that.
  • Save does not publish. Use Push.

Push

Toolbar → Push. Publishes the blog to your Lodgestory marketing site. Within seconds, the post is live at /resources/blog/<slug> with full SEO, Open Graph, structured data, and AI-crawler metadata.

Covered in detail in Publishing to CRM.

Roles & permissions

ActionOwnerAdminEditorViewer
Open editorYesYesYesYes (read-only)
Edit body and metadataYesYesYesNo
Chat refinementYesYesYesNo
Generate imageYesYesYesNo
Upload imageYesYesYesNo
Delete imageYesYesYesNo
Cross-linkYesYesYesNo
Generate videoYesYesYesNo
Change statusYesYesYesNo
Push (publish)YesYesYesNo

Connections — cross-module workflows

A. Generate → refine → publish

The editor is the centre of this flow. Before: AI Content Generation produced the draft. After: Publishing to CRM hands it to your marketing site.

B. Blog → avatar video → cross-channel

Published blog → Generate Video → a short avatar video renders in the background → shareable MP4 for LinkedIn, Instagram, and X.

C. Library curation

Regular use of Cross-link after new blogs join the library builds a tightly interconnected content surface. Strong internal linking helps your blogs rank and shows up in AI search answers.

Limits you'll see

LimitValue
Image upload max size10 MB
Feature image per blogOne
Chat history persistenceEvery turn is saved — no cap on history length
SaveManual. No autosave.

Errors & FAQ

Common situations

SymptomWhat to do
"Your session expired."Log in again. Any unsaved local changes are lost; save frequently to avoid this.
Chat stream stops mid-response.Retry the message. Content Studio falls back to a non-streaming path on hard failures.
Push fails.Check that your publish destination is configured on your brand profile. Use the Test webhook button in settings to confirm.
"Push timed out."Your marketing site took too long to respond. Retry; if it persists, contact support.
Image generation returns "insufficient credits."Your AI credits are exhausted for the period. Contact support to top up.
Cross-link inserts nothing.Your library has fewer than about three to five blogs, or there's no keyword overlap. Add more blogs and retry.
Diff preview is empty.The AI's reply was conversational only — no edit. The Accept/Reject buttons are hidden in this case.

FAQ

  • Why does the title sometimes change during chat? The refinement prompt allows the AI to propose a new title when it significantly restructures the body. You always see a diff and can Reject.
  • Can I paste HTML? Yes, but the editor stores exactly what you paste. Use Preview to verify it renders. For block quotes or images, Markdown is cleaner.
  • Is there autosave? No. Save manually before tab-switching.
  • What's the difference between Save and Push? Save persists your draft inside Content Studio. The public page is untouched until you click Push.
  • Can I schedule a publish? Not today. Push is immediate.
  • Does editing affect the published copy? No. The public copy only updates on Push. Save just updates your draft.
  • How do I roll back to a previous version? The editor doesn't show a version history today. For risky refactors, copy the Markdown to an external file before you start.
  • Can I use keyboard shortcuts? Standard textarea shortcuts work. There's no Ctrl+S for Save — click the Save button on the toolbar.

Changelog

  • Apr 2026 — Streaming chat with cancel button.
  • Feb 2026 — Chat refinement with Accept/Reject diffs.
  • Feb 2026 — Image panel with AI generation and upload side-by-side with chat.
  • Jan 2026 — Cross-link button for automatic internal linking.
  • Jan 2026 — Copy Markdown for archival export.

Related modules & next steps