Skip to content
New: Customize your theme with an AI assistant. Read the guide

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 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.

AddressStudio locationSections on this page rows
/Homepages > HomeClients Section
/home-api/Homepages > Home: APIHero Saas, Clients, Feature Grid, Code Tabs, Plans, Customer Quotes, Questions, CTA
/home-ai/Homepages > Home: AIHero Saas, Clients, Feature Grid, Steps, Customer Quotes, Plans, Questions, CTA
/home-analytics/Homepages > Home: AnalyticsHero Saas, Clients, Feature Grid, Metrics, Customer Quotes, Plans, Questions, CTA
/about/Main pages > About pageAbout Hero, Story, Values, Backers, Careers Band
/pricing/Main pages > Pricing pagePlans
/contact/Main pages > Contact pageContact, Contact Options, Customer Quotes
/faq/Main pages > FAQ pageNone
/docs/Main pages > Docs pageCode Tabs
/security/Main pages > Security pagePage Header, Compliance, Feature Grid, Questions, Disclosure
/status/Main pages > Status pagePage Header, Status, Incidents, Newsletter
/community/Main pages > Community pagePage Header, Community Channels, Open Source, Community Events, Contributors, CTA
/testimonials/Main pages > Testimonials pagePage Header, Metrics, Customer Quotes, Quote Wall, CTA
/blog/, /blog/{slug}/Main pages > Blog page, Blog postsNone
/changelog/, /changelog/{slug}/Main pages > Changelog page, Changelog entriesListing: Changelog Subscribe, Changelog List. Entry: none
/services/, /services/{slug}/Main pages > Features page, FeaturesListing: Page Header, Feature Index. Entry: Visual, Feature Grid, Steps, Code Tabs
/solutions/, /solutions/{slug}/Main pages > Solutions page, SolutionsListing: 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, IntegrationsListing: Page Header, Integrations Directory, Integrations Build. Entry: none
/customers/, /customers/{slug}/Main pages > Customers page, Customer storiesListing: Page Header, Featured Story, Clients, Customer Stories, Customer Quotes. Entry: Quote, Metrics
/compare/, /compare/{slug}/Main pages > Compare page, ComparisonsListing: Page Header, Compare List, Questions. Entry: Page Header, Plan Comparison, Feature Grid, Steps, Customer Quotes, Questions
/careers/, /careers/{slug}/Main pages > Careers page, JobsListing: Page Header, Metrics, Feature Grid, Open Roles, CTA. Entry: none
/team/, /team/{slug}/Main pages > Team page, Team membersListing: Page Header, Team Grid, Careers Band. Entry: none
/login/, /signup/, /forgot-password/Sign-in pagesForm, Footer Link, Aside
/privacy-policy/, /terms-conditions/, /cookie-policy/, /components/, /elements/Other pagesContent Page on the text pages. Page Header, Layout Gallery, and Code Tabs where the page has them, such as /elements/
404Sections > Not found section, and Interface labelsNone

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 appearsSections
HomepagesHero 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 pageCall to action, Announcement bar, Cookie consent
404 pagesNot found section

Site-Wide Content

LocationWhat’s in it
MenusHeader 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
Interface labelsButtons, 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 settingsOne 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 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 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

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.
Type something to search...