> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

## Resource: Sample Flows

## Article: Sample Flows

## Article Link: https://dev.wix.com/docs/sdk/site-sdk/site-settings/site-info/sample-flows.md

## Article Content:

# Site Info API: Sample Flows

This article presents possible use cases and corresponding sample flows that you can support. It provides a useful starting point as you plan your implementation.

## Show the site name in a footer

To show the site name in a footer, follow these steps:

1. Read `name` while the footer component renders, rather than storing it once outside the component. A Wix user can rename the site while editing it, and reading `name` during the render shows the new name:

   ```tsx
   const siteName = siteInfoService.name
   ```

2. Build the copyright line, and leave out the name when it's `''`, which means the site has no display name:

   ```tsx
   const year = new Date().getFullYear()
   const copyright = siteName ? `© ${year} ${siteName}` : `© ${year}`
   ```

3. Render the copyright line:

   ```tsx
   return <footer>{copyright}</footer>
   ```

## Tag error reports with the site revision

To tag error reports with the site revision, follow these steps:

1. Read `revision` each time you build a report, rather than once when your code starts. The revision can change while a Wix user edits the site:

   ```ts
   const revision = siteInfoService.revision
   ```

2. Leave out the revision when it's `0`, which means no revision is available, so reports without a revision aren't grouped under revision `0`:

   ```ts
   function buildErrorReport(error: Error) {
       const revision = siteInfoService.revision

       return {
           message: error.message,
           siteRevision: revision === 0 ? undefined : revision,
       }
   }
   ```

3. Call your own `sendErrorReport()` with the report, such as from a listener for uncaught errors:

   ```ts
   window.addEventListener('error', (event) => {
       sendErrorReport(buildErrorReport(event.error))
   })
   ```