Production-ready website for expert witness lead generation + academic credibility.
- Next.js 14 (App Router)
- TypeScript
- Tailwind CSS
- Single content source:
src/content/site.ts - Optional local MDX posts:
content/blog/*.mdx
- Install dependencies:
npm install- Start development server:
npm run dev- Open:
http://localhost:3000
npm run build
npm run startSet Formspree endpoint (preferred):
NEXT_PUBLIC_FORMSPREE_ENDPOINT=https://formspree.io/f/your-idIf not set, /contact form falls back to a prefilled mailto: flow.
Edit all core copy and links in:
src/content/site.ts
Optional local blog posts:
content/blog/*.mdx
- Global + per-page metadata
- Canonical URLs
- OpenGraph + Twitter card (
/public/og.png) - JSON-LD:
PersonandProfessionalService app/sitemap.tsapp/robots.ts
- Push repo to GitHub.
- In Vercel, create a new project from the repository.
- Framework preset:
Next.js. - Add env vars (for form handling if desired):
NEXT_PUBLIC_FORMSPREE_ENDPOINT
- Deploy.
Use Cloudflare DNS only. Keep current nameservers.
- In Vercel project settings, add domains:
jonathanhersh.comwww.jonathanhersh.com
- In Cloudflare DNS, create/update records:
- Type:
CNAME, Name:@, Target:cname.vercel-dns.com, Proxy: DNS only (gray cloud) - Type:
CNAME, Name:www, Target:cname.vercel-dns.com, Proxy: DNS only (gray cloud)
- Type:
- Wait for DNS propagation and verify in Vercel.
- Replace
public/cv.pdfwith the final CV file. - Replace
public/og.pngwith branded OpenGraph art if desired. - Replace placeholder email/scheduling links in
src/content/site.ts.