Skip to content

Latest commit

 

History

History
42 lines (30 loc) · 1.53 KB

File metadata and controls

42 lines (30 loc) · 1.53 KB

zack.land

About

This is the frontend of my portfolio website.

See more here.

Environment

Copy .env.example to .env.local and fill in the values. The contact form (/api/email) needs the SMTP variables; reCAPTCHA v3 is optional and fail-open (the form works without it).
Variable Purpose
EMAIL_HOST / EMAIL_USER / EMAIL_PASS SMTP transport for the contact form
FROM_EMAIL / TO_EMAIL Sender + recipient for contact submissions
NEXT_PUBLIC_RECAPTCHA_SITE_KEY reCAPTCHA v3 public site key (client)
RECAPTCHA_SECRET_KEY reCAPTCHA v3 secret key (server verification)
BEHANCE_API_KEY Behance API for the "Digital Art" page

reCAPTCHA v3 (contact form)

  1. Create keys at https://www.google.com/recaptcha/admin/create — type reCAPTCHA v3, domains zack.land, www.zack.land, localhost.
  2. Set NEXT_PUBLIC_RECAPTCHA_SITE_KEY and RECAPTCHA_SECRET_KEY (locally and in Vercel).
  3. In production, redeploy after adding them so the public site key is inlined into the client bundle.

When the secret is unset, submissions skip verification; when set, a submission must clear a 0.5 score threshold on the contact action. Verification logic is unit-tested — run npm test.

Credits

This was built by starting from next.js.