GRV-Summit-Site/README.md
“kirukib” 5f307a8862 first commit
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-20 11:56:02 +03:00

3.5 KiB
Raw Blame History

Great Rift Valley Innovation Summit

Marketing site for the Great Rift Valley Innovation Summit, built with Next.js App Router, TypeScript, Tailwind CSS, and shadcn/ui.

Getting started

npm install
npm run download-assets   # optional: refresh logos/speakers from grvsummit.com
npm run dev

Open http://localhost:3000.

Scripts

Command Description
npm run dev Start dev server (Turbopack)
npm run build Production build
npm run start Start production server
npm run lint ESLint
npm run download-assets Download branding assets from official WordPress uploads

shadcn/ui

Add components:

npx shadcn@latest add <component>

Config: components.json. Theme tokens live in app/globals.css (GRV navy #1F3D7E, gold #FFB300).

Content

Editable copy and data: content/. Images: public/branding/.

Inquiry API

POST /api/inquiry accepts JSON with intent (general | exhibitor | sponsor | sales | press | newsletter), name, email, message, and optional company / phone. v1 logs to the server console only.

To wire email (e.g. Resend), update app/api/inquiry/route.ts and set env vars from .env.example.

Assets

Logos and speaker cutouts are downloaded from the official site via scripts/download-assets.mjs. Confirm trademark and usage rights with EDTF before production deployment.

Pages

  • / — Home
  • /program — Agenda
  • /pitch-competition — Grant competition
  • /payment — Ticket selection & checkout (API stub)
  • /payment/success — Order confirmation
  • /exhibit — Exhibitor inquiries
  • /sponsor — Sponsorship tiers
  • /contact — Contact channels & form

Calendar

  • Add to calendar dropdown on the hero, tickets section, and payment page
  • Google Calendar / Outlook deep links
  • .ics download at /calendar for Apple Calendar / iCal

Payment API

POST /api/payment accepts ticketId, quantity, name, email, paymentMethod (card | bank). v1 logs orders to the console; wire Stripe, Chapa, or similar for production.

Deploy Cloudflare Workers (OpenNext)

This project is configured for OpenNext on Cloudflare.

One-time setup

  1. Install deps: npm install
  2. Authenticate Cloudflare:
    npx wrangler@4 login
    
    Or export CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID.
  3. Set production env vars in Cloudflare Workers (or your CI):
    • NEXT_PUBLIC_SITE_URL (your production URL)

Deploy now

npm run deploy

Alias:

npm run deploy:cf

Other useful commands

npm run preview      # build + local Workers preview runtime
npm run upload       # build + upload worker version (no immediate rollout)
npm run cf-typegen   # generate cloudflare-env.d.ts from wrangler bindings

CI (optional)

Workflow file: .github/workflows/cloudflare-workers-opennext.yml

Add repo secrets:

  • CLOUDFLARE_API_TOKEN
  • CLOUDFLARE_ACCOUNT_ID

Notes

  • OpenNext Cloudflare does not support export const runtime = "edge"; those exports were removed.
  • Build output is generated under .open-next/ (gitignored).