Production web and commerce platform for Taste of Gratitude, the beverage and sea moss brand, with Square payments, product and order flows, automated campaigns, and customer-facing sales experiences.
Production: https://tasteofgratitude.shop
Gratog is the full-featured Next.js commerce platform behind Taste of Gratitude's beverage and sea moss sales. It combines payment processing, automated marketing campaigns, and order management for the live brand.
- Framework: Next.js 14 with TypeScript
- Styling: Tailwind CSS
- State: Zustand (if used) or React Context
- UI Components: Radix UI (extensive)
- 3D Visualization: Three.js for product previews
- API: Next.js API routes
- Payments: Square SDK
- Email: Resend
- SMS: Twilio
- Scheduling: Vercel Cron Jobs
- Webhooks: Square webhook handlers
- Hosting: Vercel
- Database: (Configured in env)
- Caching: (Configured in env)
- Monitoring: Sentry
node 18+
npm or pnpmpnpm installpnpm devpnpm build
pnpm startCreate .env.local with:
# Payments
SQUARE_ACCESS_TOKEN=
SQUARE_APPLICATION_ID=
SQUARE_LOCATION_ID=
SQUARE_ENVIRONMENT=sandbox
# Email
RESEND_API_KEY=
# SMS
TWILIO_ACCOUNT_SID=
TWILIO_AUTH_TOKEN=
TWILIO_PHONE_NUMBER=
# App
NEXT_PUBLIC_APP_URL=https://tasteofgratitude.shopAutomated tasks running on schedule via Vercel Cron:
- Health Check (every 5 minutes):
GET /api/cron/health-check - Scheduled Campaigns (every 5 minutes):
GET /api/cron/scheduled-campaigns - Pickup Reminders (Fridays at 9 AM):
GET /api/cron/pickup-reminders - Morning Reminders (Saturdays at 8 AM):
GET /api/cron/morning-reminders - Email Scheduler (hourly):
GET /api/quiz/email-scheduler
# Unit tests
pnpm test:unit
# E2E tests (Playwright)
pnpm test:e2e:headless
# Smoke tests
pnpm test:smoke
# Lighthouse performance
pnpm lighthouseGET /api/products- List all productsGET /api/products/:id- Get product detailsPOST /api/products- Create product (admin)
POST /api/orders- Create orderGET /api/orders/:id- Get order statusPOST /api/orders/:id/cancel- Cancel order
POST /api/payments- Process paymentPOST /api/square-webhook- Handle Square webhooks
POST /api/campaigns- Create campaignGET /api/campaigns/:id- Get campaign detailsPOST /api/campaigns/:id/send- Send campaign
Deployed on Vercel with:
- Automatic deploys on
mainpush - Preview deploys for PRs
- Environment variables configured in Vercel dashboard
- Cron jobs configured in
vercel.json
- Production: https://tasteofgratitude.shop
- Vercel: https://gratog.vercel.app (redirects to production)
✅ Uses official tech stack:
- ✅ Resend for email
- ✅ Square for payments
- ✅ Twilio for SMS
- ❌ SendGrid (deprecated, removed)
| File | Purpose |
|---|---|
vercel.json |
Deployment config, cron jobs |
package.json |
Dependencies and scripts |
app/ |
Next.js App Router |
app/api/ |
API routes |
lib/ |
Utilities and helpers |
public/ |
Static assets |
- Clone repository
- Create feature branch:
git checkout -b feat/your-feature - Make changes and test:
pnpm test - Commit:
git commit -m "feat: description" - Push:
git push origin feat/your-feature - Create Pull Request
(Check LICENSE file)
For issues, questions, or suggestions, please create a GitHub issue.
Last Updated: February 2, 2026
Maintainer: Nomolos Sniktaw