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. Finzo has no Sections on this page rows: each section is one document per language, under Sections, and every page that shows it uses the same content.

AddressStudio locationSections it shows
/Homepages > Home pageHome banner, Fun fact, Features grid, Insight section, Features section two, Features ring layout, Integration section, Pricing section, Testimonial section, Blog section, Call to action
/about/Main pages > About pageAbout us, Fun fact two, Features section two, Customers, Team, Testimonial section, Call to action
/features/Main pages > Features pageFeatures grid, Features section two, Features ring layout, Features section four, Testimonial section, Call to action
/pricing/Main pages > Pricing pagePricing section, Customers, Testimonial section, Call to action
/contact/Main pages > Contact pageContact section, Testimonial section, Fun fact two, Call to action
/testimonial/Main pages > Testimonials pageTestimonial section, Call to action
/changelog/Main pages > Changelog pageCall to action. The changelog entries are the List on this page
/integration/Main pages > Integrations pageCall to action. The cards come from Integrations
/integration/{slug}/Integrations, one document per entryCall to action
/blog/Main pages > Blog pageBlog section, Call to action
/blog/{slug}/Blog posts, one document per postCall to action
/blog/page/...Main pages > Blog page, and Blog postsBlog section, Call to action
/privacy-policy/, /terms-conditions/, /components/Other pagesCall to action
404Interface labels, under CommonCall to action

There are two exceptions to one section, one content. A title or description on Blog page replaces the Blog section’s on the blog pages, and one on Testimonials page replaces the Testimonial section’s there.

Pages also have SEO and page options, folded under their other fields: a meta title and description, a preview image (a post or integration uses its main image), keywords, robots, whether the page goes in the sitemap and the AI files, draft (except the home and about pages), and on posts, integrations, and other pages a custom address.

Use the + button to add a post, an integration, an author, or another page. A post’s Author is the author’s name.

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 under Sections, in each language.

SectionWhere it appearsCan you hide it?
Home banner/No. Remove it from the page file
Fun fact/Yes
Fun fact two/about/, /contact/Yes
Features grid/, /features/Yes
Features section two/, /about/, /features/Yes
Features ring layout/, /features/Yes
Features section four/features/Yes
Insight section/Yes
Integration section/No. Remove it from the page file
Pricing section/, /pricing/Yes
Testimonial section/, /about/, /contact/, /features/, /pricing/, /testimonial/Yes
Blog section/, /blog/Yes
Customers/about/, /pricing/Yes
About us/about/Yes
Team/about/Yes
Contact section/contact/Yes
Call to actionMost pages, above the footerYes

To hide a section on every page that uses it, turn off Enable in its document. Location and Our values are also listed under Sections. No page shows them, and their content is only in French.

The pricing plans and the comparison table are in Pricing section. The contact form fields are in Contact section, under Form > Inputs. The logo row is Marquee in Customers.

Site-Wide Content

LocationWhat’s in it
MenusHeader menu, with dropdowns and the mega menu fields, 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, Contact Info (your address, phone, and email), and Footer Block (the footer description and copyright). Each language has its own
Site settingsOne for the whole site, below the languages: site title, Base URL, logo, SEO, AI files, forms, header button, footer download buttons, newsletter, social links, smooth scroll, the theme credit, and analytics tags

In Menus, Show hides an item in the header. The footer shows every link in its list, so delete a footer link to remove it.

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. Finzo’s demo content, with its images, measured 889 on a real project, so it fits. New fields use more. Sanity’s pricing page has the current limits.

Online Preview

Click-to-edit and draft preview are set up for 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

With a real Sanity project, on localhost, in Chromium:

  • Importing the demo content: all 183 documents matched the bundled copy.
  • A static build from the project: the same pages as a build from the bundled content, once images and random IDs are set aside. Every image address answered from Sanity’s CDN.
  • The Studio logged in with a test token, Live preview, and click-to-edit on page headings.
  • A full edit on the About and Blog pages, in English and in Arabic with a right-to-left field: click the heading, type, see the draft in the preview only, press Publish, see it on the page as a visitor, then put the text back.

The preview showed a change in 1 to 8 seconds. Once, on a freshly started npm run dev:all, the first edit didn’t reach the preview within a minute, although its draft was saved. On a second fresh start this didn’t happen, so we have no cause for it.

Without a project: a static build from the bundled demo content. We checked the preview server’s page addresses on localhost, with a temporary test change.

Not yet tried on this theme:

  • npm run setup as a whole, and the preview server with a real project.
  • Site settings from a real document, and clicking images, menus, labels, or the footer.
  • Any online host, a deployed Studio, or a webhook.

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, the order of sections on a page, and which layout a page uses (the comparison table on pricing, the grid on testimonials).
  • Section and component design, colors, type scale, and fonts.
  • The list of languages: src/config/language.json.
  • Favicons, and the language settings and collection folder names in config.toml.
  • New small icon files on testimonial platforms, pricing plans, and social links. The Studio holds a path to a file in src/assets/images/icons, so it can switch between icons in that folder, but can’t upload one.
  • The 404 image, and the tab title of the default language’s 404 page.
  • 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...