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

# Configure the birthday celebrant and date

> Set the celebrant's name, birthday date, and countdown labels in lib/birthday-config.ts to personalize your Birthday Wall for any occasion.

The `lib/birthday-config.ts` file is the first place you'll edit when setting up Birthday Wall for a new person. It controls who the site is celebrating, when their birthday falls, and what text appears in the homepage countdown. All other pages — the radio, the report, and the wishes wall — reference `birthdayConfig` to display the correct name and personalized copy.

## `BirthdayPerson` interface

The `BirthdayPerson` interface describes the shape of the `person` object inside `birthdayConfig`:

```typescript theme={null}
export interface BirthdayPerson {
  name: string;
  nickname?: string;
  birthday: {
    month: number; // 1–12
    day: number;   // 1–31
  };
  greeting?: string;
}
```

## Config fields

<ParamField path="person.name" type="string" required>
  The celebrant's display name. This value is shown prominently on the home page heading and referenced throughout the site wherever personalized copy appears.
</ParamField>

<ParamField path="person.nickname" type="string">
  A shorter or more informal version of the name. When provided, some UI elements use the nickname instead of the full name for a warmer, more casual tone.
</ParamField>

<ParamField path="person.birthday.month" type="number" required>
  The birth month as an integer from `1` (January) to `12` (December). Used by `getDaysUntilBirthday()` and `isBirthdayToday()` to drive the countdown and the birthday banner.
</ParamField>

<ParamField path="person.birthday.day" type="number" required>
  The birth day as an integer from `1` to `31`. Combined with `month` to determine the exact calendar date of the celebration.
</ParamField>

<ParamField path="person.greeting" type="string">
  A short message displayed beneath the countdown timer on the home page. Defaults to `"期待与你相遇"` when omitted. Use this to add a personal touch that sets the tone for the whole site.
</ParamField>

<ParamField path="countdown.title" type="string">
  The label rendered above the countdown number. For example, `"距离生日还有"` translates roughly to "Days until the birthday". Change this to match your preferred language or phrasing.
</ParamField>

<ParamField path="countdown.expiredTitle" type="string">
  The text shown in place of the countdown when `isBirthdayToday()` returns `true` — i.e., when the site visitor lands on the page on the actual birthday. The default value is `"今天是你的生日"` ("Today is your birthday").
</ParamField>

## Default config

The file ships with a working example targeting a specific person:

```typescript theme={null}
export const birthdayConfig = {
  person: {
    name: "吴总",
    nickname: "吴总",
    birthday: {
      month: 6,
      day: 19,
    },
    greeting: "期待与你相遇",
  } as BirthdayPerson,

  countdown: {
    title: "距离生日还有",
    expiredTitle: "今天是你的生日",
  },
};
```

## Customization example

Replace all values with your celebrant's details:

```typescript theme={null}
export const birthdayConfig = {
  person: {
    name: "Alex",
    nickname: "Alex",
    birthday: {
      month: 8,
      day: 15,
    },
    greeting: "Can't wait to celebrate with you!",
  } as BirthdayPerson,

  countdown: {
    title: "Days until the big day",
    expiredTitle: "Today is your birthday",
  },
};
```

<Note>
  After editing `birthday-config.ts`, save the file and restart the development server (`npm run dev`) — or redeploy to your hosting platform — for the changes to take effect.
</Note>
