# What Is Editable In Sanity

## What Is Editable In Sanity

**Files:** `sanity.config.ts`, `sanity/`, `src/config/config.toml` · **Skill level:** Beginner

Run `npm run dev:all`, open the Studio at `http://localhost:3333`, and log in with your Sanity account. **Content** has one entry per language, then **Site settings**. [Sanity](../sanity/) has the full guide, including `npm run setup` for your first project. Everything below exists in English, French, and Arabic, and each language has its own documents.

### Where Each Page Is Edited
All locations are under Content, then your language. The last column lists the rows you can add under **Sections on this page**. Each row changes one section for this page only, and a field you leave empty keeps the section's own content. Sections with no row come from their own document under **Sections**.

| Address | Studio location | **Sections on this page** rows |
| ------- | --------------- | ------------------------------ |
| `/` | **Homepages > Home** | Clients Section |
| `/home-api/` | **Homepages > Home: API** | Hero Saas, Clients, Feature Grid, Code Tabs, Plans, Customer Quotes, Questions, CTA |
| `/home-ai/` | **Homepages > Home: AI** | Hero Saas, Clients, Feature Grid, Steps, Customer Quotes, Plans, Questions, CTA |
| `/home-analytics/` | **Homepages > Home: Analytics** | Hero Saas, Clients, Feature Grid, Metrics, Customer Quotes, Plans, Questions, CTA |
| `/about/` | **Main pages > About page** | About Hero, Story, Values, Backers, Careers Band |
| `/pricing/` | **Main pages > Pricing page** | Plans |
| `/contact/` | **Main pages > Contact page** | Contact, Contact Options, Customer Quotes |
| `/faq/` | **Main pages > FAQ page** | None |
| `/docs/` | **Main pages > Docs page** | Code Tabs |
| `/security/` | **Main pages > Security page** | Page Header, Compliance, Feature Grid, Questions, Disclosure |
| `/status/` | **Main pages > Status page** | Page Header, Status, Incidents, Newsletter |
| `/community/` | **Main pages > Community page** | Page Header, Community Channels, Open Source, Community Events, Contributors, CTA |
| `/testimonials/` | **Main pages > Testimonials page** | Page Header, Metrics, Customer Quotes, Quote Wall, CTA |
| `/blog/`, `/blog/{slug}/` | **Main pages > Blog page**, **Blog posts** | None |
| `/changelog/`, `/changelog/{slug}/` | **Main pages > Changelog page**, **Changelog entries** | Listing: Changelog Subscribe, Changelog List. Entry: none |
| `/services/`, `/services/{slug}/` | **Main pages > Features page**, **Features** | Listing: Page Header, Feature Index. Entry: Visual, Feature Grid, Steps, Code Tabs |
| `/solutions/`, `/solutions/{slug}/` | **Main pages > Solutions page**, **Solutions** | Listing: Page Header, Feature Index, Customer Quotes, Questions. Entry: Visual, Feature Hero, Clients, Feature Grid, Code Tabs, Templates, Customer Quotes, Questions, Related Features, CTA |
| `/integrations/`, `/integrations/{slug}/` | **Main pages > Integrations page**, **Integrations** | Listing: Page Header, Integrations Directory, Integrations Build. Entry: none |
| `/customers/`, `/customers/{slug}/` | **Main pages > Customers page**, **Customer stories** | Listing: Page Header, Featured Story, Clients, Customer Stories, Customer Quotes. Entry: Quote, Metrics |
| `/compare/`, `/compare/{slug}/` | **Main pages > Compare page**, **Comparisons** | Listing: Page Header, Compare List, Questions. Entry: Page Header, Plan Comparison, Feature Grid, Steps, Customer Quotes, Questions |
| `/careers/`, `/careers/{slug}/` | **Main pages > Careers page**, **Jobs** | Listing: Page Header, Metrics, Feature Grid, Open Roles, CTA. Entry: none |
| `/team/`, `/team/{slug}/` | **Main pages > Team page**, **Team members** | Listing: Page Header, Team Grid, Careers Band. Entry: none |
| `/login/`, `/signup/`, `/forgot-password/` | **Sign-in pages** | Form, Footer Link, Aside |
| `/privacy-policy/`, `/terms-conditions/`, `/cookie-policy/`, `/components/`, `/elements/` | **Other pages** | Content Page on the text pages. Page Header, Layout Gallery, and Code Tabs where the page has them, such as `/elements/` |
| 404 | **Sections > Not found section**, and **Interface labels** | None |

Kivo has no **Page options** group. Meta title, meta description, and **Draft** are plain fields at the top of a document, on the documents that have them. **Exclude From Search** is on the AI and analytics homepages and on **Other pages**, **Exclude From AI** is on **Other pages**, and **Exclude From Sitemap** is on **Other pages** and **Sign-in pages**.

### New Entries
Use the **+** button in **Authors**, **Blog posts**, **Changelog entries**, **Comparisons**, **Customer stories**, **Features**, **Integrations**, **Jobs**, **Other pages**, **Sign-in pages**, **Solutions**, or **Team members** to add one. Fill in the fields you see before you publish, and check the page in the preview.

A new entry with only a title won't break the site, and it builds. Its card or page shows what you filled in, and images and other fields stay empty until you add them, so fill them in before you publish. We tested this in the bundled demo content, not on a real project.

### Sections
Each section is one document per language, under **Sections**. A change there shows on every page that uses it, unless the page has its own row. To hide a section on every page, turn off **Enable** in its document.

| Where it appears | Sections |
| ---------------- | -------- |
| Homepages | **Hero saas**, **Clients**, **Steps section**, **Stack section**, **Platform section**, **Metrics section**, **Customer quotes section**, **Code tabs section**, **Feature grid section**, **Regions section**, **Templates section**, **Security section**, **Plans section**, **Questions section**, **Changelog section** |
| `/about/`, `/team/` | **About hero section**, **Story section**, **Values section**, **Backers section**, **Careers band section**, **Team grid section** |
| `/pricing/`, `/compare/` | **Plans section**, **Plan comparison section**, **Compare list section** |
| `/contact/` | **Contact section**, **Contact options section** |
| `/docs/` | **Docs hero section**, **Docs categories section**, **Docs help section**, **Quickstart section** |
| `/security/` | **Compliance section**, **Disclosure section** |
| `/status/` | **Status section**, **Incidents section** |
| `/community/` | **Community channels section**, **Open source section**, **Community events section**, **Contributors section** |
| `/testimonials/` | **Quote wall section** |
| `/blog/`, `/changelog/` | **Blog list section**, **Related posts section**, **Newsletter section**, **Changelog list section** |
| `/services/`, `/solutions/` | **Feature index section**, **Feature hero section**, **Related features section** |
| `/integrations/` | **Integrations directory section**, **Integrations build section**, **Related integrations section** |
| `/customers/` | **Featured story section**, **Customer stories section**, **Next story section** |
| `/careers/` | **Open roles section**, **Benefits section** |
| `/elements/` | **Feature bento section** |
| Every page | **Call to action**, **Announcement bar**, **Cookie consent** |
| 404 pages | **Not found section** |

### Site-Wide Content
| Location | What's in it |
| -------- | ------------ |
| **Menus** | **Header menu**, with dropdowns and mega menus, and **Footer menu**, with a **Column heading** and **Column links** for each column. Each language has its own. See [Menus](../../customization/menus/) |
| **Interface labels** | Buttons, labels, and form messages. **Footer** holds the footer description, copyright, and status text, and **AI** holds the site summary. Each language has its own |
| **Site settings** | One for the whole site, below the languages: **Site**, **SEO** (including Robots Txt, AI, and Sitemap), **Settings**, **Opengraph**, **Head** for analytics tags, and **Social** |

Under **Settings**, **Layout** picks the header, the footer, and the footer wordmark for every page. **Settings** also holds the header button and link, contact details, forms, newsletter, search, smooth scroll, cookie banner, page actions, the theme credit, animation, and copyright.

**Site settings** apply when the site builds. While `npm run dev:all` runs, they apply when you publish them, and the page reloads. They don't change as you type, and click-to-edit doesn't reach them, so change them in their form.

### Plans And Attributes
At the time of writing, Sanity's free plan allows 2,000 attributes, one for each distinct field path in your content. Kivo's sample content, with its images, measured 1,840 on a real project, so it fits, with 160 left.

That is close to the limit, so watch it. Translating into another language uses none of it, and neither does adding more posts or pages. Live preview adds a few. Cropping images uses more: we estimate that cropping every kind of image could add about 180, which is more than the room left, so crop only where you need it. Adding new fields to the schema adds more. [Sanity's pricing page](https://www.sanity.io/pricing) has the current limits.

### Online Preview
Click-to-edit and draft preview work out of the box on your own computer, with `npm run dev:all`. To use them online, your editors need a second copy of the site running as a small **Node.js server**, because drafts can't be shown from static files. A static host can't do this. See [Sanity](../sanity/) for the steps. Without a preview server, editors online can still edit in the Studio's forms and publish.

### What We Tested
**On this theme:** importing the sample content into a real project, editing and publishing in the Studio in a browser, and the preview server running on `localhost`.

**Not tested:**

- Any online host, a deployed Studio, or Netlify or Vercel functions, which the preview server doesn't support.
- A webhook, end to end, on any host.
- Uploading an image in the Studio, adding a language against a connected project, and `--delete-online`.

Try these on your own project before you rely on them.

### What Stays In Code
These change how the site is built, not what it says:

- The page routes and the order of sections on a page: `src/pages/[...lang]/`.
- Section and component design, colors, type scale, and fonts.
- The list of languages: `src/config/language.json`.
- Favicons, and the language settings, collection folder names, and layout switcher in `config.toml`.
- Which sections and fields exist. To add one, see `SKILLS.md`.

### Do It With AI
```text
I use the Sanity edition. Tell me where to edit [TEXT OR SETTING] in the Studio: the language entry,
the document, and the field. If it comes from a section document, say which pages will change.
Don't change any files, and don't print anything from .env.
```