# Choose your interface

> Decide who renders the controls around the DOCX canvas.



Keep the document loading and saving you already built. Now choose who renders the controls around it. SuperDoc
continues to render the document and handle editing in all three approaches.

## Compare the approaches [#compare-the-approaches]

Switch between Built-in, Hybrid, and Fully custom in the diagram. The toolbar and comments panel change ownership;
the document stays with SuperDoc.

> **Interactive comparison: who renders the interface**
>
> SuperDoc renders the DOCX canvas in every approach. The configuration changes who renders the controls around it.

| Approach | Configuration | Who renders the controls |
| --- | --- | --- |
| Built-in | `ui: { toolbar: { container: '#toolbar' } }` | SuperDoc |
| Hybrid | `ui: { toolbar: { container: '#toolbar' }, comments: false }` | SuperDoc renders the toolbar; your application renders comments through `superdoc.ui.comments` |
| Fully custom | `ui: false` | Your application, through `superdoc.ui` |


Start with the built-in interface and configure it for your product. Use a hybrid interface when you need to own one
part, such as a comments panel. Choose fully custom only when your application needs to render all the controls.

## What the configuration changes [#what-the-configuration-changes]

`Config.ui` controls which built-in surfaces render. A partial `ui` object changes only the surfaces it names. Hiding a
surface does not remove its document data or public API.

For example, `ui: { comments: false }` hides the built-in comments UI. It does not create a replacement panel; your
application renders that panel and connects it to the comments API.

`SuperDocEditor` creates a built-in toolbar container by default. Vanilla integrations add their own container when they
want the toolbar.

## Continue with your choice [#continue-with-your-choice]

* [Use the built-in UI](/editor/built-in-ui/overview) to configure SuperDoc's toolbar and review surfaces.
* [Build a custom UI](/editor/custom-ui/overview) to connect application-owned controls to `superdoc.ui`.
