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

# Birthday Wall: personalized birthday celebration app

> Birthday Wall is a self-hostable web app for celebrating a birthday with a live countdown, anonymous wish wall, music radio, recap report, and mini-games.

Birthday Wall is an open-source web app you deploy for one person — the birthday celebrant. Visitors land on a live countdown page, leave wishes, listen to a curated music radio, play mini-games, and browse a yearly recap report. Everything is configurable: the name, the date, the greeting, the music. You own the deployment and the data.

## Key features

<CardGroup cols={2}>
  <Card title="Birthday countdown" icon="timer">
    A full-screen live timer showing days, hours, minutes, and seconds until the birthday. When the day arrives, the countdown switches to a celebration message.
  </Card>

  <Card title="Wish wall" icon="heart">
    Visitors write anonymous birthday messages that are saved to your Supabase database. You can review and manage submissions from the admin panel.
  </Card>

  <Card title="Music radio" icon="music">
    A curated playlist page where visitors can listen to songs selected for the celebrant, with floating lyrics on the home page as ambient atmosphere.
  </Card>

  <Card title="Yearly recap report" icon="chart-bar">
    A shareable year-in-review page summarizing the celebrant's year — a personal "Spotify Wrapped"-style birthday report.
  </Card>

  <Card title="Mini-games" icon="gamepad-2">
    A games room visitors can play as they wait for the birthday or celebrate on the day.
  </Card>

  <Card title="Self-hostable" icon="server">
    Deploy on Vercel in minutes. You control the data, the domain, and the configuration. No third-party platform lock-in.
  </Card>
</CardGroup>

## Who it's for

Birthday Wall is for anyone who wants to build something more personal than a group chat message. If you want to give someone a dedicated space on their birthday — with a custom countdown, messages from friends, and a playlist just for them — Birthday Wall is the starting point.

You don't need to be a developer to use it, but you will need to clone a repository, set a few environment variables, and deploy to Vercel. The [quickstart](/quickstart) walks you through every step.

## How it works

A visitor's journey through Birthday Wall follows the five pages defined in `lib/nav-config.ts`:

1. **Home (`/`)** — The countdown page. Visitors see the celebrant's name, a live timer, and ambient floating lyrics pulled from the music config. On the birthday itself, the timer is replaced by a celebration message and a link to leave a wish.
2. **Radio (`/radio`)** — The music page. Visitors browse and play songs from the curated playlist you configure.
3. **Write (`/write`)** — The wish wall submission form. Visitors type a birthday message and submit it. Messages are stored in Supabase.
4. **Report (`/report`)** — The yearly recap. A visual summary of the celebrant's year, shareable as a birthday keepsake.
5. **Games (`/games`)** — The games room. A set of mini-games visitors can play to celebrate.

The site name and all celebrant details are set in two config files: `lib/site-config.ts` for the site identity and `lib/birthday-config.ts` for the person's name, birthday date, and greeting.

<Note>
  The countdown, radio, and games pages work without a database. You only need Supabase if you want the wish wall to save messages.
</Note>

## Next steps

<Card title="Quickstart: deploy in under 10 minutes" icon="rocket" href="/quickstart">
  Fork the repo, configure your environment, and get Birthday Wall running locally and on Vercel.
</Card>
