Personal site, built with Next.js (App Router) + Tailwind CSS, deployed on Vercel.
npm install
npm run devCopy .env.local.example to .env.local and fill in the contact-form env vars
(RESEND_API_KEY, CONTACT_TO_EMAIL) to test the contact form locally. Without
them the form fails with a clear error instead of silently dropping submissions.
app/: routes (Home, About, Experience, Projects, Writing, Resume, Contact, plus an unlisted/pccoearchive for PCCoE session materials)content/blog/*.mdx: blog posts, each exporting ametaobject. Posts republished from Medium setoriginalUrlandpublication: the page links back to the original, its canonical URL points there, and it's left out of the sitemap. Their images live inpublic/images/writing/<slug>/.lib/: content data (experience, projects, talks) and blog helperspublic/pccoe/: static session decks, served byte-for-byte at/pccoe/...
Hosted on Vercel with the custom domain tejasmorkar.dev (DNS points there, not
GitHub Pages). Push to main to deploy.
Experience, education, and skills live in lib/experience.ts and feed both the
Experience and Resume pages, so keep them in sync with public/resume.pdf.
- Contact form needs a Resend account. Set
RESEND_API_KEYandCONTACT_TO_EMAILin Vercel's project env vars. Thefromaddress defaults to Resend's sharedonboarding@resend.devsender. Verify your own domain in Resend to send as@tejasmorkar.devinstead.