# 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, Fun Fact, Features Grid, Insight, Features Two, Features Ring, Integration, Pricing, Testimonial, Blog, Call To Action |
| `/about/` | **About page** | About Us, Fun Fact Two, Features Two, Customers, Team, Testimonial, Call To Action |
| `/features/` | **Features page** | Features Grid, Features Two, Features Ring, Features Four, Testimonial, Call To Action |
| `/pricing/` | **Pricing page** | Pricing, Customers, Testimonial, Call To Action. The Pricing block feeds both the plan cards and the comparison table |
| `/contact/` | **Contact page** | Contact, Testimonial, Fun Fact Two, Call To Action |
| `/testimonial/` | **Testimonials page** | Call To Action. The page's own title and description replace the Testimonial section's |
| `/changelog/` | **Changelog** | Call To Action. The changelog entries are the **List** field in this form |
| `/integration/` | **Integrations**, the listing page | Call To Action. The cards come from the integration files |
| `/integration/{slug}/` | **Integrations**, one file per entry | None. It holds the entry and its text |
| `/blog/` | **Blog**, the listing page | Call To Action. The page's own title and description replace the Blog section's |
| `/blog/{slug}/` | **Blog**, one file per post | None. It holds the post and its text |
| `/blog/page/...` | Built from the posts | None |
| `/privacy-policy/`, `/terms-conditions/`, `/components/` | **Other pages** | None. Each holds the page and its text |
| 404 | **Interface labels**, under **Common** | None |

Use **Create New** to add a post, an integration, or another page. **Authors** holds the name, photo, and role shown on blog posts: use **Add File** to add one.

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.

The header and footer are on every page, so they have no blocks. See Site-Wide Content below.

### Sections
**Section defaults** holds the shared content of each section, in each language, including the pricing plans, the testimonials, the team, 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 | Where it appears |
| ------- | ---------------- |
| **Home banner** | `/` |
| **Fun fact** | `/` |
| **Fun fact two** | `/about/`, `/contact/` |
| **Features grid** | `/`, `/features/` |
| **Features section two** | `/`, `/about/`, `/features/` |
| **Features ring layout** | `/`, `/features/` |
| **Features section four** | `/features/` |
| **Insight section** | `/` |
| **Integration section** | `/` |
| **Pricing section** | `/`, `/pricing/` |
| **Testimonial section** | `/`, `/about/`, `/contact/`, `/features/`, `/pricing/`, `/testimonial/` |
| **Blog section** | `/`, `/blog/` |
| **Customers** | `/about/`, `/pricing/` |
| **About us** | `/about/` |
| **Team** | `/about/` |
| **Contact section** | `/contact/` |
| **Call to action** | Most pages, 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** and **Integration section** have no such field.

### 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** | **Header Primary** (dropdowns and the mega menu) and **Footer**, per language. See [Menus](../../customization/menus/) |
| **Social links** | Your social profiles |
| **Interface labels** | Buttons and form messages, **Contact Info** (your address, phone, and email), and **Footer Block** (the footer description and copyright), per language |

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

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

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

### What The Preview Doesn't Update
The header, the menus, and values from **Site settings** don't change while you type. They update when you save. Restart `npm run dev` after you change Trailing Slash, Blog Folder, Integration Folder, or anything under Multilingual.

Other things that only happen in the editor:

- Scroll fade-ins are off, so all content stays visible.
- A click on outlined text opens its field. The pricing monthly / yearly toggle can't be clicked there, so try it on the normal page at `http://localhost:4321/pricing/`.
- While a post has unsaved changes, inline HTML such as `<u>` shows as plain text in the preview. It is kept when you save, and the saved page shows it correctly.
- The phone number, images with no alt text, categories, and one-word options have no outline. Change them in their forms.
- The **Components** page uses raw HTML, so its body is edited as source code, and its preview updates after you save.

### What Stays In Code
- Which sections a page has, and their order: the page file in `src/pages/[...lang]/`. The hero and the integrations section have no **Enable** field, so hiding one means removing it from the page file.
- 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/).
- The icons themselves. Icon names are text you can edit, using names from [Lucide](https://lucide.dev/icons/).
- The folder names themselves. Blog Folder and Integration Folder in **Site settings** must match folders and code, so leave them unless you also rename those.

### Versions And Testing
This edition is tested on Astro 7.2.8 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.

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