ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗The pre-launch showcase site for GetHyre.ai, built from the Figma file gethyred-personal → Website · v1.
You need Node.js 20.9 or newer.
npm install
npm run dev
Open http://localhost:3000. With no settings, forms work in development and print each lead in the terminal.
Other commands:
npm run build # production build (also type-checks)
npm run start # serve the production build
npm run lint # ESLint
Copy .env.example to .env.local and fill in what you have. Every setting is optional for local work.
| Setting | What it turns on |
|---|---|
NEXT_PUBLIC_WHATSAPP_NUMBER | The floating "Chat on WhatsApp" button and WhatsApp links |
NEXT_PUBLIC_SURVEY_URL | The campus survey buttons |
NEXT_PUBLIC_BOOKING_URL | "Book a partnership call" opens your calendar link |
NEXT_PUBLIC_DEMO_VIDEO_URL | Replaces the video placeholder with the embedded video |
GOOGLE_* | Saves every lead as a row in Google Sheets |
RESEND_API_KEY, EMAIL_FROM, LEADS_ALERT_EMAIL | Auto-reply emails, and alerts for college, company and ambassador leads |
*_TURNSTILE_* | Cloudflare Turnstile spam check on all forms |
NEXT_PUBLIC_GA_ID, NEXT_PUBLIC_CLARITY_ID | GA4 events and Clarity heatmaps |
Students, Colleges, Companies, Ambassadors.Submitted (IST), Name, Email, WhatsApp, College, Course, Target role, Page, UTM source, UTM medium, UTM campaign, Consent versionSubmitted (IST), Name, Designation, College, Phone, Email, Final-year students, Page, UTM source, UTM medium, UTM campaign, Consent versionSubmitted (IST), Name, Company, Email, Phone, Roles, Freshers per year, Page, UTM source, UTM medium, UTM campaign, Consent versionSubmitted (IST), Name, Email, WhatsApp, College, Course, Why, Page, UTM source, UTM medium, UTM campaign, Consent versionGOOGLE_SHEET_ID (the long ID in the sheet's URL), GOOGLE_SERVICE_ACCOUNT_EMAIL and GOOGLE_PRIVATE_KEY.If a sheet write fails and Resend is set up, the lead is emailed to LEADS_ALERT_EMAIL so nothing is lost.
In production, if neither Sheets nor Resend is configured, forms show "Our form isn't connected yet" instead of losing the lead.
Give each college its own link, for example https://gethyre.ai/early-access?utm_source=college-name&utm_medium=qr.
The first UTM tags a visitor arrives with are saved with their form, so the sheet shows sign-ups per college.
.env.example in Vercel → Project → Settings → Environment Variables.NEXT_PUBLIC_SITE_URL.https://<domain>/sitemap.xml in Google Search Console.app/ one folder per page; actions/leads.ts handles every form
components/ui.tsx buttons, sections, headings, cards
components/layout/ nav + mobile menu, footer, WhatsApp button, analytics
components/marketing/ phone mockup, journey stepper, FAQ, download cards, page hero
components/forms/ the shared lead form
content/journey.ts the 7 journey steps and the FAQ
lib/site.ts contact details, social links, downloads, nav
lib/forms.ts form fields, validation rules, sheet columns
public/screens/ app screens exported from Figma (780×1688, 2×)
public/brand/ logo, logo mark, social share image
content/photos.ts photos (Unsplash License, loaded from images.unsplash.com) with credits
app/globals.css design tokens from Figma (colours, font, radii)
What's in place (see next.config.ts, app/actions/leads.ts and lib/):
NEXT_PUBLIC_* values reach the browser, and none of them are secret.
Google, Resend and Turnstile keys are read only in files marked server-only. Never put a secret in a
NEXT_PUBLIC_ variable, and never commit .env.local (it's git-ignored).X-Powered-By header.
If you add a new outside service (a chat widget, a new analytics tool), add its domain to the CSP in
next.config.ts or the browser will block it.Recommended before launch:
NEXT_PUBLIC_TURNSTILE_SITE_KEY + TURNSTILE_SECRET_KEY)./, /early-access, /colleges,
/companies and /ambassadors (Vercel → Project → Firewall). It works across all instances.npm audit and npm outdated monthly, and update next, react and
react-dom as soon as a security release comes out.[ and replace every bracketed placeholder (team, college logos, survey stat,
company name, city, roles covered, legal text).public/downloads/ and set their href in lib/site.ts.public/brand/logo.png with a vector logo when you have one (the current one is cut from a JPEG).