> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anotherwrapper.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SEO

> Metadata, sitemaps, and dynamic OG images -- all baked in

<Info>
  All pages are **optimized for SEO by default.** The codebase ships with automatic metadata tags, a generated sitemap, and dynamic OG banners. You mostly just need to update the content.
</Info>

## The Three SEO Pillars

<AccordionGroup>
  <Accordion title="Metadata">
    The root `app/layout.tsx` exports default metadata using values from `config.ts`. Each app can override the defaults through its own `toolConfig.ts` file.

    ```typescript app/layout.tsx theme={null}
    export const metadata = {
      title: `${defaultTitle}`,
      description: defaultDescription,
      keywords: defaultKeywords,
      icons: [{ rel: "icon", url: `${companyConfig.company.homeUrl}${favicon}` }],
      openGraph: {
        url: companyConfig.company.homeUrl,
        title: `${defaultTitle} | ${companyConfig.company.name}`,
        description: defaultDescription,
        images: [
          {
            url: `${companyConfig.company.homeUrl}${defaultOgImage}`,
            width: 800,
            height: 600,
            alt: `${companyConfig.company.name} logo`,
          },
        ],
      },
    };
    ```

    <Tip>
      You can override the default meta tags by [exporting a metadata object](https://nextjs.org/docs/app/building-your-application/optimizing/metadata) in any `page.tsx` file. The defaults in `config.ts` are your safety net.
    </Tip>
  </Accordion>

  <Accordion title="Sitemap">
    The sitemap at `app/sitemap.ts` combines your static public routes with blog posts from Content Collections. As you customize the starter, keep that file aligned with the routes you actually expose, such as `/blog`, `/apps`, `/chat`, `/image-studio`, `/video-studio`, `/audio`, `/vision`, `/marketing-plan`, `/launch-simulator`, and `/voice`.

    <Tip>
      Every blog post you write automatically appears in the sitemap. Just add the `.mdx` file and it's indexed.
    </Tip>
  </Accordion>

  <Accordion title="Dynamic OG Images">
    The route at `app/api/og/route.tsx` generates dynamic Open Graph images for your pages using `next/og`. These are the preview cards that show up when someone shares your link on social media.

    Check out the [Vercel OG examples](https://vercel.com/docs/functions/og-image-generation) for inspiration on customizing yours.
  </Accordion>
</AccordionGroup>

## Where to Edit

| What                    | Where                                        |
| ----------------------- | -------------------------------------------- |
| Default SEO values      | `config.ts` at the project root              |
| Page-specific overrides | Export a `metadata` object in any `page.tsx` |
| Sitemap entries         | `app/sitemap.ts`                             |
| OG image generation     | `app/api/og/route.tsx`                       |

<Tip>
  Before launching, search for any leftover "AnotherWrapper" references in your metadata. You want your brand name, not the boilerplate's.
</Tip>
