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

### 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 on the page comes from **Section defaults**.

| Address | Entry in `/admin/` | The page's own blocks |
| ------- | ------------------ | --------------------- |
| `/` | **Home page** | Home Banner Section, Features Section, Why Us Section, Pricing Section, Testimonial Section, Integration Section, Faq Section, Call To Action Section |
| `/features/` | No entry of its own. Edit its sections under **Section defaults** | None |
| `/pricing/` | **Pricing page** | Pricing Section, Customers Section, Call To Action Section. The Pricing Section block feeds both the plan cards and the comparison table |
| `/faq/` | **FAQ page**. The questions and answers are the **List** field in this form | Call To Action Section |
| `/changelog/` | **Changelog page** | Changelog Section, Call To Action Section |
| `/contact/` | **Contact page** | Contact Section, Call To Action Section |
| `/integration/` | **Integrations**, the listing page | Integration Section, Call To Action Section |
| `/integration/{slug}/` | **Integrations**, one file per entry | Call To Action Section |
| `/blog/` | **Blog**, the listing page | Blog Section, Call To Action Section |
| `/blog/{slug}/` | **Blog**, one file per post | Call To Action Section |
| `/blog/page/...` | **Blog**, the listing page and the posts | None |
| `/elements/`, `/privacy-policy/`, `/terms-conditions/` | **Other pages** | Call To Action Section |
| 404 | **Interface labels**, under **Not Found** | None |

The Features page shows four sections, in this order: `features-section-two`, `features-section`, `why-us-two`, and `call-to-action`. Opening `features-section` or `why-us-two` shows the Features page beside the form.

The header and footer are on every page, so they have no blocks. See Site-Wide Content below. **Authors** holds the name, photo, and role shown on blog posts.

### Sections
**Section defaults** holds the shared content of each section, in each language, including the pricing plans, the changelog entries, the contact details, and the contact form fields. A change there shows on every page that uses the section, unless the page has filled in its own block.

| Section | File | Where it appears |
| ------- | ---- | ---------------- |
| **Home banner** | `home-banner` | `/`. Its own **Customers** field holds the text for the logo row |
| **Features section** | `features-section` | `/`, `/features/` |
| **Features section two** | `features-section-two` | `/features/` |
| **Why us** | `why-us` | `/` |
| **Why us two** | `why-us-two` | `/features/` |
| **Pricing section** | `pricing-section` | `/`, `/pricing/` |
| **Testimonial** | `testimonial` | `/` |
| **Customers** | `customers` | `/pricing/`, and the logo row in the home banner |
| **Integration section** | `integration-section` | `/`, `/integration/` |
| **Blog section** | `blog-section` | `/blog/`, `/blog/page/...` |
| **Changelog section** | `changelog-section` | `/changelog/` |
| **Contact section** | `contact-section` | `/contact/` |
| **Call to action** | `call-to-action` | Every page except the 404, above the footer |

To hide a section, turn off its **Enable** field. In **Section defaults** that hides it on every page, and in a page's block on that page only. **Home banner** has no such field. **Integration section** shows one, but nothing reads it. To hide either of these, remove it from the page file.

The two "Why us" sections have two layouts: set **Layout Type** to `creative` or `modern`.

Some fields need exact values:

- **Comparison**, in **Pricing section:** each row's **Included** list has one value per plan, in order. Type `yes` for a tick, `no` for not included, or a short text such as `10 users` to show that text.
- **Plan names:** the **Label** of each plan (Monthly, Yearly) must match the **Type** of each price exactly, or that price won't show. These labels have no click-to-edit, so change them in the form.

### Site-Wide Content
| Entry | What's in it |
| ----- | ------------ |
| **Site settings** | **Site** (title, description, tagline, Base Url, logo), **Seo** (including robots.txt, AI files, and sitemap), **Settings**, **Opengraph**, and **Head** for analytics tags |
| **Menus** | One file per language: **Header Primary** (dropdowns and the mega menu), **Footer Menu Quick Link**, **Footer Menu Resources**, **Footer Menu Legal**, and **Footer Menu**. See [Menus](../../customization/menus/) |
| **Social links** | Your social profiles |
| **Interface labels** | One file per language: buttons, form messages, the 404 title, **Navigation** (the header button's label), and **Footer** (the column headings, description, and copyright) |

**Settings** also holds the header and footer options: **Sticky Header**, **Navigation Button**, **Footer Description**, **Copyright**, **Subscription**, and **Theme Credit**. It also has **Contact Form Action**, **Contact Form Provider**, **Contact Info**, **Smooth Scroll**, and **Page Actions**. Upstart has one header layout and one footer layout, so there are no layout options to pick.

In **Menus**, **Show** hides an item in the header, and **Order** sets its position. The footer shows every link in its list, in the order in the file, so delete a footer link to remove it.

### New Entries
Open a language folder first, then **Create New**, and pick **Blog post**, **Integration**, or **Page**. Ignore **Listing page**, which is already there, and **Add Folder**. **Save** stays greyed out until you type a **Filename**. It becomes the web address, so use lowercase words and hyphens, such as `my-first-post`. A new entry exists only in that language, so create it in the other language folders too.

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. An integration needs a category to appear in the lists on `/integration/`.

### If You Clear A Field
In a page's form, a field you never filled in 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.
- Delete that 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 changes every page that uses it, and the form's
  title says **Section defaults**.
</Aside>

### What The Preview Doesn't Update
The header, the menus, values from **Site settings**, and the body of the elements page, which you edit as source code, don't change while you type. They update when you save. Restart `npm run dev` after you change **Trailing Slash** or anything under **Multilingual**.

Other things that work differently in the preview:

- A click on text always opens its field. So a click on an FAQ tab, or on any other tab or accordion label from your content, doesn't switch it. To edit another FAQ category, use the form.
- Try your forms and videos on the built website (`npm run preview`), not in the editor.

### What Stays In Code
- Which sections a page has, and their order: the page's file in `src/pages/[...lang]/`.
- New sections and new page layouts. Then run `npm run tina:generate` so the editor offers them.
- Colors and type scale (`src/styles/theme.css`) and fonts (`src/config/fonts.json`).
- The list of languages. See [Internationalization](../../customization/internationalization/).
- **Blog Folder** and **Integration Folder** in **Site settings**. Leave them as they are, because they must match folder names in the code.

### Versions And Testing
This edition is tested on Astro 7.1.3 and Node 22, with `tinacms` 3.15.1, `@tinacms/cli` 4.0.4, and `@tinacms/astro` 0.8.0. `npm ci` installs exactly these. The live preview uses experimental features of `@tinacms/astro`, so test it before you upgrade anything.

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