---
title: "Quickstart"
source: "https://docs.vertesiahq.com/content/view-experiences/quickstart"
markdown: "https://docs.vertesiahq.com/llms/content/view-experiences/quickstart.md"
---

# Quickstart

This guide creates the smallest useful View — a searchable list of one content type with a single facet — and opens
it. It takes a few minutes. For the full configuration surface, see
[Configuration](/content/view-experiences/configuration).

  You need a project with Elasticsearch enabled and at least one content type that already has indexed objects.
  See [Search Configuration](/content/search).

## 1. Create a View in Studio

Open **Studio > View Experiences**, select **New View**, and enter a stable ID such as `documents`. The ID is an
immutable, project-unique, lowercase URL slug; the display name and everything else can change later.

The Studio editor opens with the canonical View JSON Schema loaded into Monaco, so you get structural diagnostics as
you type. Paste the minimal configuration below and adjust the content type ID and facet field to match your project.

```typescript {{ title: 'minimal-view.ts' }}
import type { ViewExperienceConfiguration } from '@vertesia/common';

export const minimalView = {
    name: 'Documents',
    description: 'Browse and search project documents by status.',
    enabled: true,
    scope: {
        type_ids: ['<CONTENT_TYPE_ID>'],
    },
    navigation: [
        {
            id: 'status',
            label: 'Status',
            source: 'terms',
            field: 'properties.status',
            presentation: 'list',
            multi_select: true,
            size: 20,
            sort: 'count',
        },
    ],
    search: {
        mode: 'deterministic',
        placeholder: 'Search documents',
    },
    results: {
        default_display: 'list',
        displays: [
            {
                id: 'list',
                label: 'List',
                type: 'list',
                title: { field: 'name' },
                description: { field: 'description' },
            },
        ],
    },
} satisfies ViewExperienceConfiguration;
```

Every persisted View requires a `description`. Studio shows it to users and gives it to Studio Assistant when the
assistant discovers or explains project Views, so make it a real sentence about the View's purpose and audience — not
just the name repeated.

## 2. Validate and preview

The editor applies structural diagnostics while you type and full semantic validation before saving. Once the View is
created you can **preview** it in place: the editor runs the current configuration against real content and shows
results without persisting your latest edits, so you can iterate before committing. Select **Explain** at any point to
open Studio Assistant on the current configuration, including unsaved changes — see
[Search & agentic planning](/content/view-experiences/search) and
[the Studio Assistant guide](/studio/assistant).

Save the View when the results look right.

## 3. Open it

The generic route renders a persisted View with no application code:

```text
/view/documents
```

That is the whole loop: define scope, one facet, search, and a display; save; open. From here:

- Add more facets, hierarchies, ranges, or collection and location navigation — [Configuration](/content/view-experiences/configuration).
- Turn on natural-language search — [Search & agentic planning](/content/view-experiences/search).
- Embed the View in your own application instead of the generic route — [Embedding in applications](/content/view-experiences/embedding).

If a facet comes back empty or a numeric range does nothing, check
[Troubleshooting](/content/view-experiences/troubleshooting) — it is almost always a field-name or property-mapping
issue.