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. A row under Sections on this page changes a section on that page only, and a field you leave empty keeps the section’s own content. Everything else on the page comes from the section’s document under Sections.
| Address | Studio location | Rows under Sections on this page |
|---|---|---|
/ | Homepages > Home 1 | Services Section and CTA Section. See below |
/home-two/ | Homepages > Home 2 | Team Section |
/home-three/ | Homepages > Home 3 | None. It has Has Footer Dark Background |
/about/ | Main pages > About page | Team Section, Solutions Section |
/services/ | Main pages > Services page | Services Section |
/services/{slug}/ | Services, one document per entry | None |
/projects/, /projects/grid/, /projects/page/... | Main pages > Projects page, and Projects | None |
/projects/{slug}/ | Projects, one document per entry | None |
/team/ | Main pages > Team page | Team Section. A title here doesn’t show |
/team/{slug}/ | Team members, one document per entry | None |
/pricing/ | Main pages > Pricing page, Pricing section, and FAQ section | None |
/faq/ | Main pages > FAQ page | FAQ Section |
/testimonials/ | Main pages > Testimonials page | Testimonial Section |
/contact/ | Main pages > Contact page | Contact Section. The form itself comes from Contact section |
/blog/, /blog/creative/, /blog/page/... | Main pages > Blog page, and Blog posts | None |
/blog/{slug}/ | Blog posts, one document per post | None |
/blog/category/..., /blog/tag/... | Made from the categories and tags on Blog posts | None |
/privacy-policy/, /terms-conditions/, /components/ | Other pages | None |
| 404 | Interface labels, under Not Found | None |
On Home 1, the Services Section row doesn’t change the page: edit Services section instead. The CTA Section row changes Home 1’s closing call to action.
Pages also have SEO and page options, folded under their other fields: a meta title and description, a preview image (a post or project uses its main image), keywords, robots, whether the page goes in the sitemap and the AI files, draft (except the three homepages), and on entries a custom address.
New Entries
Use the + button to add a service, project, team member, post, author, or other page. The Studio also asks for a File name. Authors holds the author shown on blog posts.
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. A change there shows everywhere the section is used. Pricing plans are in Pricing section, and the contact form’s fields are in Contact section.
| Section | Where it appears |
|---|---|
| Banner | / |
| Banner two | /home-two/ |
| Banner three | /home-three/ |
| Customers | /, inside the banner |
| Features | / |
| About section | /, /about/ |
| Skill section | / |
| Startup skill section | /home-two/, /home-three/ |
| Services section | /, /home-two/, /home-three/, /services/ |
| Working process | /home-three/, /services/ |
| Projects section | /, /home-two/, /home-three/ |
| Pricing section | /home-two/, /pricing/ |
| Team section | /, /home-two/, /home-three/, /about/, /team/ |
| Testimonial | /, /home-three/, /testimonials/ |
| FAQ section | /home-two/, /pricing/, /faq/ |
| Blog section | /, /home-two/, /home-three/ |
| Stats section | /about/ |
| Contact section two | /about/, /home-three/ |
| Contact section | /contact/ |
| CTA section | Every page, above the footer |
| CTA widget section | Service and project detail pages |
About one, About two, Awards, Clients, Personal portfolio banner, Portfolio section, Skills, and Video section are also in the list, but no page shows them. They are there for you to build on with a developer.
Services, projects, team, blog, and testimonial sections have more than one layout: set Options > Layout on the section or on a page’s row. The layouts and item limits the homepages set stay in code, and they win over Options.
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 |
| Interface labels | Buttons, labels, form messages, and footer copy (Footer > Copyright and the description). Each language has its own. French and Arabic also have their own tagline, description, and office hours |
| Site settings | One for the whole site, below the languages: site title, Base URL, logo, SEO, AI files, form endpoint, navigation button, contact details, smooth scroll, the theme credit, social links, and analytics tags |
In Menus, Show hides an item without deleting it. Items appear in the order of the list.
Site settings apply when the site builds. While npm run dev:all runs, they apply when you publish them. They don’t change as you type, and click-to-edit doesn’t reach them, so change them in their form. Subscription has settings there, but no page shows that form as it ships. See Subscription.
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. A test project holding all the sample content and images measured 895, by Sanity’s own count, so it fits. Your own fields and content add to that. 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
On this theme with no Sanity project, in Chromium: building and serving the static site from the bundled sample content, in all three languages.
On this theme with a real Sanity project, in Chromium, on localhost:
npm run import-seedwith all the sample content and images, andnpm run setuprun again on that project. The project and its token were made with the same Sanity commands by hand, not bynpm run setup.- The Studio and Live preview, with
npm run dev:all. Clicking a heading on the page opens its field. Text was changed in English, French, and Arabic, showed as a draft in the preview only, and was published with Publish. - Typing and publishing in the Site settings, Menus, and Interface labels forms.
- A static build from the project, with its images served by Sanity’s CDN.
- The preview server (
npm run build:preview,npm run start:preview) onlocalhost: all 300 pages, published and in draft. - Adding a language with
npm run generate-multilingual-contenton the project. Removing languages was tried on the sample content only.
Not tested on this theme:
npm run setupcreating a brand-new project.- A deployed Studio, any online host, an online preview server, and webhooks.
- In the Studio: creating a new document, uploading an image, and clicking an image on the page.
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]/. - Which header a page uses, and whether its footer is dark: the route files, such as
index.astro,home-two.astro, andhome-three.astro. Home 3’s footer has a switch in its form. - The layouts and item limits the homepages set for services and projects: the same route files.
- 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. - 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.