Browse the docs ▾

Tutorials

Redesign an existing site

The owner's site is already serving customers. Change the draft in small steps, keep what works, and publish when they say yes.

The brief: "My site looks dated. Can you modernise it?"
You'll end with an updated design in the draft, the same content and addresses, and a list of changes for the owner to approve.

1. Look before you suggest

get_site

The pages, theme, shared parts, and unpublished_changes. Someone may have left draft work that a publish would also send live; mention it.

get_page_screenshot

Take the live version with source: "live", at desktop and mobile widths.

list_pages

Missing search text, placeholder words, images without alt text.

get_page_outline

The structure of each page, one at a time. Add section to read just one section.
A live site with kind: "classic" uses an older theme. Its content can be edited, but its design can't until you call open_in_builder. That copies the live design into a builder draft and changes nothing live, but the first publish after it moves the live site to the builder for good. Tell the owner this before you begin, and let them decide.

2. Propose a short, concrete plan

Offer three to six changes and say what each one improves, such as "larger hero text with one clear button, because the phone view currently shows no call to action". Wait for the owner to choose. Don't change the words unless they ask.

3. Start with the shared styles

The biggest change for the least risk usually comes from set_theme and set_token, which change every node that uses them. corners and buttons in set_theme restyle every button and picture at once.

4. Change the draft in small batches

Send each batch of ops with a short note, which the owner sees in the builder history, and take a screenshot after each one. Keep every action_id, because undo_site_change needs it, and no tool can list older ones. Undo works only while nothing has changed the design since, so undo the later change first.
Move and copy before you rebuild: move_section, move_node and duplicate_section keep the bindings and links a rebuilt section could lose.

5. Keep what's connected

Data-bound text

Product names and prices can't take set_text. They change at their source.

Text with data inside

A footer like © 2026 Opmiz Tutorials keeps its token if you send it back. Leaving it out makes the name fixed words.

Rows of a list

Features and testimonials change with set_list_items. Rows left out are removed.

Library

Header and footer words often live in the Library. Check list_library_items, as saves there are live at once.

Addresses

Don't move pages unless it's part of the plan. preview_page_settings adds a redirect from an old address when one moves.

6. Show before and after

Compare draft and live screenshots of the same page at the same width. Show the owner the draft, with the phone view too. If they want to look around themselves, they can open the draft in the Opmiz builder.

7. Publish

preview_site_publish lists everything that would go live, from you and from anyone else. Show them the list, including anything you didn't do, and publish after their yes. After that, take a source: "live" screenshot to confirm it.
If an owner is editing at the same time, you'll get REVISION_CONFLICT. Read the page again and rework your change on the new revision. See Revisions, errors and recovery.

Look at both versions

get_page_screenshot {
  "org_id": 1042, "page": "home",
  "source": "live",
  "breakpoint": "mobile",
  "full_page": true }

get_page_screenshot {
  "org_id": 1042, "page": "home",
  "source": "draft",
  "breakpoint": "mobile",
  "full_page": true }

A plan the owner can answer

1. Bigger headline and one main button
   on the home page.
2. Softer corners and your teal on all
   buttons.
3. Move reviews above the gallery.
4. Add search descriptions to 2 pages.

Which of these shall I do?