Personal portfolio built with Next.js (App Router), TypeScript, Tailwind CSS v4 and Motion. Live at ibsaabera.tech.
npm install
cp .env.example .env.local # then add your Web3Forms access key
npm run devOpen http://localhost:3000.
| Name | Where it is used | Notes |
|---|---|---|
NEXT_PUBLIC_WEB3FORMS_KEY |
components/Contact.tsx |
Web3Forms access key for the contact form. Public by design: the form posts from the browser, because Web3Forms blocks server-side calls on its free plan. Set it in Vercel for Production and Preview, then redeploy (it is baked in at build time). |
npm run dev— start the dev servernpm run build— production build (also type-checks)npm run start— run the production buildnpm run lint— lint with ESLint
app/— routes, layout, metadata,robots.ts,sitemap.tscomponents/— page sections and the theme providerlib/data.ts— projects, stats and copy shown on the pageassets/— images imported bylib/data.tspublic/— static files (resume PDF)