# Thank You Year — build spec (source for the Base44 prompts)

A small business answers a few questions and gets up to 10 animated 9:16 story pages that thank its customers for the year. Worldwide, English first. Look and slide rules are defined by the prototype in this folder (`index.html`, `slides.js`, `app.html`).

## Data (one record per recap)

| Field | Type | Notes |
|---|---|---|
| business_name | text | required |
| business_type | cafe · salon · shop · studio · freelancer · other | picks the wording (see `VOCAB` in slides.js) |
| place | text | address or @handle, optional |
| year | number | default current year |
| locale | text | number format, from the browser |
| visits | number | optional |
| top_item / top_count | text / number | optional |
| month_values | 12 numbers | optional; or just `best_month` |
| peak_kind | clock · day | time ("8:15 am") or weekday |
| peak_value | text | |
| new_customers | number | optional |
| milestone_text / milestone_by | text | optional, handwriting page |
| receipt_lines | list of {label, value} | 3–6 lines, optional |
| team_count / team_names | number / text | optional |
| photos | up to 5 image URLs | optional; printed in one ink |
| lines | per-page text | AI first draft, owner edits |
| tone | warm · funny · short | |
| slug | text | public link `/r/{slug}` |
| published | boolean | |

## Slide rules
1. Cover always. 2–9 only if their data exists. 10 Thank-you always.
2. One number + one sentence per page. Numbers shrink to fit the width.
3. No photo → use the type-only version (big year cover, smiley doodles, large seal, name tags).
4. Instagram safe zone: all text between y≈250 and y≈1670 of 1080×1920.
5. "Make one for your business" appears only on the last page and the public page.

## Privacy
- A Shopify orders CSV is read **in the browser**; only totals are kept (count of orders, top item, orders per month, busiest hour/day, first-time buyers). The file and any customer names, emails or addresses are never uploaded or stored.
- No customer personal data is ever asked for.

## AI
- One call per recap (plus one per "Try another") writes the page lines from the numbers, in the chosen tone. Owner edits every line before publishing. Never invent numbers.

## Sharing
- Public page `/r/{slug}`: the story player, "Visit {business}" link, small "Make yours".
- For Instagram: download the 10 pages as 1080×1920 images (to test: can the Base44 app export images?). Fallback: screenshot guide.
- Counter poster: A4 with a QR to the public page.

## Not in v1
Logins for customers, comments, video export, other languages.
