
Who
I got tired of charity landers that look like Christmas and behave like a brochure.
Toy drives need funding progress. Parents need a tax receipt path. Partners need an inquiry form that emails a human. Operators who inherit a wrong-vertical Next scaffold need an autopsy that says the quiet part: this README used to be BestWNC.
SantaBox is for people funding age-tagged gift boxes before December 15 delivery cutoffs, and for builders who will delete fake partner names when legal risk shows up in a commit message.
What
I built SantaBox.org. Package santabox.org, version 0.1.0, private under HurleyUS/santabox.org. Metadata line: Christmas Gift Boxes for Children in Need. Campaign badge on the live hero: Christmas 2026 Campaign Now Open.
Stack facts from the lockfile and tree: Next.js 16.1.6, React 19.2.4, Tailwind 4.1, Bun, Convex schema for gift boxes / donations / donors / subscribers / nonprofits / partner inquiries / impact stories, Clerk (optional when keys missing), Stripe checkout + subscribe APIs, Resend, Sentry, PostHog. Forty-two commits. HEAD 67712cb.
Donate presets: $25 stocking · $50 half box · $75 small · $100 full (default) · $150 premium · $250 two boxes. Cover processing fees (2.9% + $0.30) so the gift side can stay whole. Subscribe UI/schema: $10/mo or $100/yr.

Where
Code stays private on GitHub. Product answers at https://www.santabox.org (apex 307 to www) and the GitHub homepage URL https://web-iota-topaz-45.vercel.app. Both returned marketing HTTP 200 with X-Robots-Tag: index, follow on pack day.
Routes that still 500 without service env: /impact, /subscribe, /create-wishlist. May 20 commits explicitly keep the public site up when service env is missing. The 500s are the other side of that bargain.
No public/ directory in the tree. Layout still points at /og-image.png and favicons that are not on disk. Partners page now sells “Team Up with SantaBox” plus a grid of real team projects instead of invented orgs.

When
January 8, 2026: eebf7a1. Next.js, Convex, Tailwind scaffold. GitHub created_at is later (Feb 6). The clock and the hosting console do not owe each other an apology; the commit log does.
February 6: Next 16 / React 19 / Tailwind v4 import fix.
February 9: Docs stop lying about BestWNC. Major rebuild commit lands the charity storytelling surface. Clerk becomes optional so builds survive missing keys. AUTOPSY.md records the crime scene: wrong layout title, empty Convex, dead buttons, wrong year, subscription-box confusion vs donation README.
February 13: 10377d8. remove fabricated nonprofit/sponsor data. Commit body names the liability. Replacement: partner inquiry form + Resend /api/partner-inquiry + project grid of confirmed live sites.
February 15: Stripe webhook + signature verification + donate button actually calls checkout.
Late February: force-dynamic for Clerk/Convex pages, proxy.ts protection, error boundaries, sitemap/robots, security headers, auth on user mutations, .take(100) on collects.
March: Sentry instead of console.error spam; Vitest; then drop GitHub Actions because Vercel is CI.
May: Blacksmith ship gates, Santabox typecheck fixes, deploy URL verification, public-site-without-service-env.
August 8, 2026 6:50 AM ET: 67712cb. X-Robots-Tag index, follow. HEAD. Forty-two commits.

Why
A Christmas charity site that still wears another product's metadata is worse than an unfinished one.
Fabricated partner logos are not placeholder content. They are a lawsuit with good lighting.
Dual honesty shows up here too: PLAN.md still lists Convex schema and Stripe as not started while convex/schema.ts and /api/checkout exist; AUTOPSY celebrates “production ready” with unchecked env boxes; homepage hardcodes statesReached: 42 even on the live Convex path; marketing claims 501(c)(3) without an EIN file in-repo. Say the drift out loud.
The money path is real enough to document: fee cover math, taxReceiptSent boolean, subscriber Stripe IDs, wishlist create client, box status enum pending to open to funded to shipped to delivered.


What would you delete first if you found another vertical's partner logos still living in your charity repo: the logos, or the launch date?
