# What Is Editable In Tina

## What Is Editable In Tina

**Files:** `src/content/`, `src/config/`, `src/i18n/`, `tina/` · **Skill level:** Beginner

Keep `npm run dev` running, open `http://localhost:4321/admin/`, and click **Enter Edit Mode**. You need no account and no password. Open the menu at the top left, then pick an entry, a language folder, and a file. [Tina](../tina/) has the full guide. Everything below exists in English, French, and Arabic, and an edit changes one language.

Give a page about five seconds after it opens, because a page with many sections loads a form for each one. Saving a large form, such as a homepage, can take up to half a minute, so wait for it to finish before you leave the page.

### Where Each Page Is Edited
The last column lists the blocks in the page's own form. Fill one in to change that section on this page only. Every other section comes from **Section defaults**.

| Address | Entry in `/admin/` | The page's own blocks |
| ------- | ------------------ | --------------------- |
| `/` | **Home pages**, file `-index` | Hero, Steps, Why Us, Metrics, Services, Reviews, Contact, Questions, Related Posts, Cta |
| `/home-cleaning/` | **Home pages**, file `home-cleaning` | Hero, Why Us, Services, Plans, Steps, Feature Grid, Reviews, Booking, Questions, Related Posts, Areas, Cta |
| `/home-commercial/` | **Home pages**, file `home-commercial` | Primary Cta, Hero, Services, Why Us, Feature Grid, Reviews, Team Grid, Related Posts, Contact, Cta |
| `/home-handyman/` | **Home pages**, file `home-handyman` | Hero, Trust Strip, Why Us, Services, Metrics, Feature Grid, Steps, Reviews, Before After, Questions, Related Posts, Cta |
| `/about/` | **About page** | About Hero, Story, Values, Steps, Team Grid, Careers Band, Cta |
| `/services/` | **Services**, the listing page | Page Header, Services, Industries Strip, Included, Add Ons, Questions, Cta. **Detail** and **Templates** hold blocks for every service page |
| `/services/{slug}/` | **Services**, one file per service | Included, Estimate, Cta, and **Repair** |
| `/pricing/` | **Pricing** | Page Header, Plans, Estimate, Add Ons, Rates, Included, Questions, Cta. **Frequencies**, **Rate Cards**, and **Add Ons** hold the prices |
| `/areas/` | **Service areas**, the listing page | Page Header, Areas, Reviews, Questions, Cta |
| `/areas/{slug}/` | **Service areas**, one file per area | Cta. **Hours** and **Office** are fields of the area |
| `/industries/` | **Industries**, the listing page | Page Header, Contact, Cta. **Detail** holds blocks for every industry page |
| `/industries/{slug}/` | **Industries**, one file per industry | Included, Services, Steps, Before After, Questions, Contact, Cta |
| `/projects/` | **Projects**, the listing page | Page Header, Before After, Reviews, Related Projects, Cta |
| `/projects/{slug}/` | **Projects**, one file per project | Cta |
| `/team/` | **Team**, the listing page. **Team** also has one file per member | Page Header, Team Grid, Careers Band, Cta |
| `/careers/` | **Careers**, the listing page | Page Header, Open Roles, Values, Steps, Questions, Application, Cta |
| `/careers/{slug}/` | **Careers**, one file per job | Cta |
| `/blog/` | **Blog**, the listing page | Page Header, Blog List, Newsletter, Cta |
| `/blog/{slug}/` | **Blog**, one file per post | Newsletter, Related Posts, Cta |
| `/blog/category/...`, `/blog/tag/...`, `/blog/page/...` | Built from the posts | None |
| `/guarantee/` | **Guarantee page** | Page Header, Trust Strip, Compliance, Steps, Questions, Guarantee Claim, Cta |
| `/faq/` | **FAQ** | Page Header, Questions, Cta |
| `/contact/` | **Contact page** | Page Header, Contact, Contact Options, Questions, Cta |
| `/book/` | **Other pages**, file `book` | Booking, Trust Strip, Questions |
| `/book/thanks/` | **Other pages**, file `book-thanks` | Not Found |
| `/how-it-works/` | **Other pages**, file `how-it-works` | Steps, Trust Strip, Included, Values, Questions, Cta |
| `/reviews/` | **Other pages**, file `reviews`. The quotes are in **Reviews** | Reviews, Cta |
| `/gift-cards/`, `/referral/` | **Other pages** | Gift Cards or Referral, Steps, Contact, Questions, Cta |
| `/elements/` | **Other pages**, file `elements` | Layout Gallery, Estimate, Booking |
| Legal pages | **Other pages**, one file per page | Content Page |
| `/components/` | **Components page**. Its body is edited as source code | Cta |
| 404 | **Interface labels** (**Not Found**) and the **Not found section** in **Section defaults** | None |

The form of **Other pages** lists every block those pages can use. A block only works on a page that shows that section.

Most page forms also have **Main button on this page**, **Header layout**, **Footer layout**, **Robots**, **Leave out of llms.txt and Markdown copies**, and **Draft (not published)**.

### New Entries
Use **Create New** in **Services**, **Service areas**, **Industries**, **Projects**, **Careers**, **Blog**, **Team**, **Reviews**, and **Authors**. The header menu doesn't pick up a new service or area, so add its link in **Menus and footer columns**. See [Menus](../../customization/menus/).

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.

### Sections
**Section defaults** holds the shared content of each section, 36 in all, in each language. A change there shows on every page that uses the section, unless the page has filled in its own block.

| Section | Where it appears |
| ------- | ---------------- |
| **About hero section**, **Story section** | `/about/` |
| **Add ons section** | `/pricing/`, `/services/`, service pages |
| **Announcement bar** | Above the header on every page. It ships off |
| **Areas section** | `/areas/`, area pages, `/home-cleaning/` |
| **Before after section** | `/home-handyman/`, `/projects/`, service, area, industry, and project pages |
| **Blog list section** | `/blog/`, its pages, and category and tag pages |
| **Booking section** | `/book/`, `/home-cleaning/` |
| **Call to action** | Above the footer, on pages that turn it on |
| **Careers band section** | `/about/`, `/team/` |
| **Clients** | Commercial service pages, and the logo row of the reviews `spotlight` layout |
| **Compliance section**, **Guarantee claim section** | `/guarantee/` |
| **Contact options section** | `/contact/` |
| **Contact section** | `/contact/`, `/`, `/home-commercial/`, `/industries/`, industry pages, `/gift-cards/`, `/referral/` |
| **Cookie consent** | The cookie banner on every page |
| **Estimate section** | `/pricing/`, service pages |
| **Feature grid section** | `/home-cleaning/`, `/home-commercial/`, `/home-handyman/` |
| **Hero section**, **Why us section**, **Related posts section** | All four homepages. Related posts also shows under each blog post |
| **Included section** | `/pricing/`, `/services/`, `/how-it-works/`, service and industry pages |
| **Metrics section** | `/`, `/home-handyman/` |
| **Newsletter section** | Blog list pages and posts |
| **Not covered section** | Repair service pages |
| **Not found section** | 404 pages, `/book/thanks/` |
| **Open roles section** | `/careers/` |
| **Plans section** | `/pricing/`, `/home-cleaning/` |
| **Questions section** | Most pages, including `/faq/`, `/contact/`, `/book/`, and `/pricing/` |
| **Reviews section** | All four homepages, `/reviews/`, `/areas/`, `/projects/`, service and area pages |
| **Service hero section** | Service pages |
| **Services section** | All four homepages, `/services/`, service, area, and industry pages |
| **Steps section** | `/`, `/home-cleaning/`, `/home-handyman/`, `/about/`, `/how-it-works/`, `/guarantee/`, `/careers/`, `/gift-cards/`, `/referral/`, service and industry pages |
| **Team grid section** | `/team/`, `/about/`, `/home-commercial/` |
| **Trust strip** | `/home-handyman/`, `/book/`, `/how-it-works/`, `/guarantee/`. Its rating also feeds the hero and reviews |
| **Values section** | `/about/`, `/how-it-works/`, `/careers/` |

To hide a section, use its **Enable** field. To change its look, use **Options > Layout**. `/elements/` previews every layout.

### Site-Wide Content
| Entry | What's in it |
| ----- | ------------ |
| **Site settings** | **Site** (title, tagline, Base Url, logo), **Business** (name, phone, email, address, hours), **Seo** (robots.txt, AI files, sitemap), **Settings**, **Opengraph**, and **Head** for analytics tags |
| **Menus and footer columns** | **Header Primary** (dropdowns, flyouts, and the mega menu) and **Footer**, in `menu.en`, `menu.fr`, and `menu.ar`. See [Menus](../../customization/menus/) |
| **Social links** | Your social profiles |
| **Interface labels** | Buttons, form messages, and footer copy (**Footer**), per language |

Homio has four header layouts and four footer layouts. Choose them in **Site settings > Settings > Layout**, or per page with **Header layout** and **Footer layout**. **Settings** also holds **Sticky Header**, **Navigation Button**, **Navigation Secondary Link**, **Mobile Action Bar**, **Copyright**, **Subscription**, **Theme Credit**, **Page Actions**, **Smooth Scroll**, **Color Scheme**, **Cookie Consent**, **Estimator**, **Booking**, **Contact Form Action**, and **Contact Form Provider**.

### If You Clear A Field
In a page's form, a field you never filled uses the default. A field you clear is saved empty, which hides that text or image on that page.

Tina can't bring the default back by itself. To get the text back, do either of these:

- Copy it from **Section defaults** into the field.
- Remove the empty line from the page's file in `src/content/` with a text editor.

<Aside type="caution">
  Clicking text in the preview opens the file the text comes from. If that is a
  section default, your edit shows on every page that uses it.
</Aside>

### What The Preview Doesn't Update
The header, the menus, and values from **Site settings**, such as contact details, don't change while you type. They update when you save. Some **Site settings** also need `npm run dev` restarted, and the note on the field says so.

These have no click-to-edit outline, so change them in their forms: the header and menus, values from **Site settings**, images with no alt field, categories and tags, and one-word options. Online with Tina Cloud there are forms only.

When Tina saves, it removes comments and rewrites Markdown in its own style. Your words and values stay. If you also edit content files by hand, run `npm run tina:audit`.

### What Stays In Code
- Which sections a page has, and their order: the route in `src/pages/[...lang]/`. You can hide a section with its **Enable** field.
- New sections, new page routes, and new layouts. Then run `npm run tina:generate` so the editor offers them.
- Colors and type scale (`src/styles/theme.css`), fonts (`src/config/fonts.json`), and the logo mark (`src/lib/brandMark.ts`).
- The list of languages. See [Internationalization](../../customization/internationalization/).
- The price formula, booking steps, and area matching in `src/lib/`. The rates and settings they read are in **Pricing** and **Site settings**.
- The icons themselves. Icon names are text you can edit.

### Versions And Testing
This edition is tested on Astro 7.4.2 and Node 22, with `tinacms` 3.15.1, `@tinacms/cli` 4.0.4, and `@tinacms/astro` 0.8.0. They are pinned in `package.json`. The live preview uses experimental features of `@tinacms/astro`, so test it before you upgrade.

We have not run online editing against a live Tina Cloud project. Try one save on a copy of your site before you rely on it.

### Do It With AI
```text
I use the Tina edition. Tell me where to edit [TEXT OR SETTING] in /admin/: the entry, the language
folder, the file, and the field. If it comes from Section defaults, say which pages will change,
and how to change it on one page only. Don't change any files.
```