Create and share personalized message pages (love, apology, birthday, gratitude, and more) with a unique public link.
- Vite 5 + React 18 + TypeScript
- Tailwind CSS 3
- Firebase Auth + Firestore
- Vercel Serverless Functions (
/api/*) - Stripe Checkout + Stripe Webhooks
- Vitest + Testing Library
- Multi-template message creation flow
- Public share pages at
/m/:id - Optional auth (email/password + Google)
- Dashboard for signed-in users (
/my-messages) - AI-assisted draft generation endpoint
- Premium upgrade flow via Stripe
- Install dependencies:
npm install
- Create
.env.localfrom.env.exampleand fill values. - Run dev server:
npm run dev
- Open
http://localhost:8080
See .env.example for full list. Core values:
VITE_FIREBASE_API_KEYVITE_FIREBASE_AUTH_DOMAINVITE_FIREBASE_PROJECT_IDVITE_FIREBASE_STORAGE_BUCKETVITE_FIREBASE_MESSAGING_SENDER_IDVITE_FIREBASE_APP_IDSTRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRETANTHROPIC_API_KEYFIREBASE_PROJECT_IDFIREBASE_CLIENT_EMAILFIREBASE_PRIVATE_KEY
Optional:
APP_ORIGIN(defaulthttps://emotion-creators.vercel.app)ALLOWED_CHECKOUT_ORIGINS(comma-separated)
npm run dev- start dev servernpm run build- production buildnpm run preview- preview production buildnpm run lint- ESLintnpm run test- run testsnpm run test:watch- watch tests
- Frontend + API functions are designed for Vercel.
- Deploy Firestore rules from
firestore.rules. - Configure Stripe webhook to
POST /api/stripe-webhook.