> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wpos.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Gutenberg

> Build with core WordPress blocks, keep every section editable in the block editor, and turn any section into a reusable WPOS widget.

export const YouTubeVideo = ({id, title, caption}) => {
  const [playing, setPlaying] = useState(false);
  return <div className="demo-embed">
      {playing ? <iframe src={`https://www.youtube-nocookie.com/embed/${id}?autoplay=1&rel=0&playsinline=1`} title={title} allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" allowFullScreen /> : <button type="button" className="yt-facade" onClick={() => setPlaying(true)} aria-label={`Play video: ${title}`} title={title}>
          <span className="yt-facade-thumb" style={{
    backgroundImage: `url(https://i.ytimg.com/vi/${id}/maxresdefault.jpg)`
  }} aria-hidden="true" />
          <span className="yt-facade-play" aria-hidden="true">
            <svg width="26" height="26" viewBox="0 0 24 24" fill="currentColor">
              <path d="M8 5.14v13.72a1 1 0 0 0 1.52.85l10.97-6.86a1 1 0 0 0 0-1.7L9.52 4.29A1 1 0 0 0 8 5.14z" />
            </svg>
          </span>
        </button>}
      {caption ? <p className="demo-caption">{caption}</p> : null}
    </div>;
};

On a site built with the block editor, WPOS builds with Gutenberg's own core
blocks: cover, columns, quote, and group. Nothing proprietary, so every
section stays editable the normal way when you or your client open the
editor.

<YouTubeVideo id="Bva83jGAypU" title="WPOS Takes Over Gutenberg" caption="Core blocks in, a reusable widget out" />

## Set the site to Gutenberg

In [Settings](/operate/settings), under **Preferences**, set **Preferred page
builder** to **Gutenberg**. The change takes effect from the next chat
session, and WPOS builds in the block editor from then on.

## What WPOS builds

* **Core blocks.** Pages are made of the block editor's own blocks (cover,
  columns, quote, group), not wrappers that only WPOS understands.
* **Editable in the editor.** Open the page in the block editor and every
  section is a real block you can change by hand.
* **Styling kept to the page.** When a page needs its own styling, WPOS can
  keep it in a snippet scoped to that page, so it cannot leak into the rest of
  the site.

```text theme={null}
Build a services page from core blocks: a cover hero,
a grid of six services, two quotes, and a call to action.
```

## Turn a section into a reusable widget

When a section should be reused or edited by someone who does not touch
markup, ask WPOS to make it a widget. For example, a service grid can become a
widget with a repeater, so services are added, reordered, and edited from
fields instead of code.

```text theme={null}
Make the services grid reusable, so I can add
and reorder services without editing markup.
```

WPOS widgets fit into the block editor like any other block:

* **Native blocks.** Every WPOS widget is registered as a block. Search the
  block inserter and it appears under the **WPOS** category.

  <Frame caption="A WPOS widget in the Gutenberg block inserter, under its own WPOS category.">
    <img src="https://mintcdn.com/wpos/aMT6rxIB6z4LCmNt/images/surfaces/builders.png?fit=max&auto=format&n=aMT6rxIB6z4LCmNt&q=85&s=41323d221c2533d61706b2860b17f7a9" alt="The Gutenberg block inserter searched for WPOS, showing a WPOS category with a widget block." width="1280" height="720" data-path="images/surfaces/builders.png" />
  </Frame>

* **Block patterns.** Every widget is also available from the editor's
  **Patterns** panel.

* **Not tied to one builder.** The same widget also works in Elementor and
  Divi. See [Page builders](/operate/builders).

<CardGroup cols={2}>
  <Card title="Page builders" icon="cubes" href="/operate/builders">
    How WPOS works across page builders, with no lock-in.
  </Card>

  <Card title="Divi" icon="table-columns" href="/operate/divi">
    Build real Divi pages and use WPOS widgets as Divi modules.
  </Card>
</CardGroup>
