Local Sync
Pull content to your local machine, edit with your favorite tools, and push changes back.
How Local Sync Works
The CLI creates a .redo/ folder structure that mirrors your site. This gives you:
- Version control - Track changes with Git
- Editor freedom - Use VS Code, Cursor, or any text editor
- AI assistance - Feed your site content to Claude or ChatGPT
- Bulk edits - Find and replace across all pages
Folder Structure
After pulling content, your project looks like this:
my-site/
├── .redo/
│ ├── config.json # Site configuration
│ ├── pages/
│ │ ├── index/ # Home page (/)
│ │ │ ├── page.json # Page metadata
│ │ │ └── blocks/ # Page blocks
│ │ │ ├── hero.json
│ │ │ └── features.json
│ │ ├── about/ # /about page
│ │ │ ├── page.json
│ │ │ └── blocks/
│ │ └── blog/
│ │ ├── page.json # /blog page
│ │ └── post-1/ # /blog/post-1 (nested)
│ │ └── page.json
│ ├── blocks/ # Global blocks
│ │ ├── header.json
│ │ └── footer.json
│ ├── settings/
│ │ └── site.json
│ └── forms/
│ └── contact.json Pulling Content
Pull a Single Page
# Pull by ID
redo pull page page_abc123
# Pull by path
redo pull page /about
# Pull home page
redo pull page / Pull Global Blocks
# Pull a specific block
redo pull block header
# Pull by ID
redo pull block block_xyz789 Pull Everything
# Pull entire site
redo pull --all This downloads all pages, blocks, settings, and forms. Useful for initial setup or creating a backup.
Pull Settings and Forms
# Pull all settings
redo pull settings
# Pull a form schema
redo pull form form_abc123 Editing Content
After pulling, edit the JSON files with any text editor. Block content typically looks like:
{
"id": "block_hero",
"type": "hero",
"content": {
"heading": "Welcome to Our Site",
"subheading": "We make great things happen",
"cta_text": "Get Started",
"cta_link": "/contact"
}
} Change the values and save the file.
Don't change IDs
The id field links your local file to the remote content. Changing it will create
new content instead of updating existing.
Pushing Changes
Push a Page
# Push by ID
redo push page page_abc123
# Push by path
redo push page /about This uploads all blocks within that page folder.
Push a Global Block
redo push block header Push Settings
# Push a specific setting
redo push setting site_title
# Push all settings
redo push settings Push Forms
redo push form contact Workflow Example
Here's a typical workflow for updating your site:
# 1. Pull the latest content
redo pull page /about
# 2. Edit .redo/pages/about/blocks/*.json in your editor
# 3. Push your changes
redo push page /about
# 4. Preview your changes
redo screenshot --page /about
# 5. Publish when ready
redo publish /about Handling Conflicts
If content changed on the server while you were editing locally:
- The CLI warns you about the conflict
- Use
--forceto overwrite server content with your local version - Or pull again to get the latest version and re-apply your changes
# Force push (overwrites server)
redo push page /about --force Use force carefully
Force pushing overwrites any changes made in the web editor. Coordinate with your team to avoid losing work.