Next.js + TypeScript + Tailwind. App code lives in this folder (web) inside FlowLynksFolder; strategy PDFs and plans stay in the parent folder or files/.
-
Open a terminal.
-
Go to this app root:
cd FlowLynksFolder/FlowLynks_Automation(Full path on this machine:
c:\Users\USER\Andela\FlowLynksFolder\FlowLynks_Automation.) -
Install dependencies (first time or after
package.jsonchanges):npm install
-
Optional: copy environment template and set the public site URL (used for sitemap,
robots.txt, and Open Graph):copy .env.example .env.local
On macOS/Linux:
cp .env.example .env.localIn
.env.local, set e.g.NEXT_PUBLIC_SITE_URL=http://localhost:3000while developing so/sitemap.xmland canonical URLs match your dev origin. In production, set it to your live domain (no trailing slash). -
Start the dev server:
npm run dev
-
Open the URL shown in the terminal (default http://localhost:3000).
Stop the server with Ctrl+C.
- Each route exports a unique title and meta description, plus canonical, Open Graph, and Twitter fields where relevant.
/sitemap.xmland/robots.txtare generated fromapp/sitemap.tsandapp/robots.ts.- Default social preview image:
app/opengraph-image.tsx(visit/opengraph-imagewhilenpm run devis running to sanity-check).
- Form:
components/contact-form.tsxposts toapp/api/contact/route.ts. - Email (Resend): set
RESEND_API_KEY,CONTACT_TO_EMAIL, and optionallyRESEND_FROM_EMAIL(see Resend). - Alternative (Formspree): set
FORMSPREE_FORM_IDinstead; the API forwards submissions server-side. - Scheduler: set
NEXT_PUBLIC_BOOKING_IFRAME_SRCto your Cal.com or Calendly iframesrcURL for the embed on/contact.
If neither Resend nor Formspree is configured, the API returns 503 with a clear message (useful for local testing before keys exist).
npm run build
npm run startIf the Git repository root is FlowLynksFolder, set the Vercel project Root Directory to web so builds use this package.json.
- Next.js
- TypeScript, ESLint, Tailwind CSS v4
No Clerk or other auth in the public marketing MVP unless a client portal is added later.