A responsive, single-page portfolio for Shereen Mokone, a front-end and CMS developer with a focus on digital marketing. The site presents her profile, career history, skills, selected work, and contact details.
next/image.app/globals.cssnext/fontVersions are pinned or constrained in package.json and package-lock.json.
The home page is assembled in this order:
Navigation links scroll to these sections. The navigation adapts for smaller screens with a menu toggle and a full-width Contact link.
npm ci
npm run dev
Open http://localhost:3000.
The app does not require environment variables. next/font/google retrieves
the Geist font files during the build, so a network connection is needed when
building in a clean environment.
| Command | Description |
|---|---|
npm run dev |
Start the local development server. |
npm run lint |
Run ESLint. |
npm run typecheck |
Check TypeScript types without emitting files. |
npm run build |
Create an optimized production build. |
npm run start |
Serve the production build locally. Run after npm run build. |
Before publishing changes, run:
npm run lint
npm run typecheck
npm run build
app/
globals.css Design tokens, component styles, and responsive rules
layout.tsx Root layout, fonts, and SEO/social metadata
page.tsx Home page and section composition
components/
sections/ Navigation and portfolio page sections
ui/ Shared button and portrait components
assets/
shereen hero.png Hero portrait source image
shereem about me.png About portrait source image
SPORTY Fitness Website Device Mockup.png E-commerce project mockup
FraudCheck Responsive Website Mockup.png FraudCheck project mockup
OZOW Merchant Website Mockup.png Ozow project mockup
CV_ Shereen Mokone.pdf Latest CV source asset
lib/
portfolio-data.ts Skills and selected-project content
public/
CV.pdf CV served from the site root as /CV.pdf
assets/ by
components/ui/portrait-artwork.tsx. Keep those files in the repository;
Next.js bundles and optimizes them for the deployed site./CV.pdf. Keep
public/CV.pdf in the repository so the file is available at that URL after
deployment. The latest source CV is assets/CV_ Shereen Mokone.pdf.lib/portfolio-data.ts.components/sections/contact.tsx; the LinkedIn profile is linked there too.
The email form uses a mailto: action and therefore relies on the visitor
having an email application configured.Pushing this repository to GitHub publishes the source code, not a running Next.js website. For a live site, import the GitHub repository into Vercel, or use another host that supports the Next.js App Router. GitHub Pages does not run this project as configured; hosting there would require converting the app to a compatible static export.
To connect this local repository to a new GitHub repository, first create an empty repository on GitHub, then configure its URL and push the current branch:
git remote add origin https://github.com/<your-account>/<your-repository>.git
git add .
git commit -m "Prepare portfolio for GitHub"
git push -u origin <your-branch>
Replace the URL and <your-branch> with your GitHub repository URL and the
branch name shown by git branch --show-current. Make sure the assets/
directory, components/, lib/, and public/CV.pdf are included in the commit.
The existing .gitignore excludes generated build output, dependencies, local
environment files, and other machine-specific files.
components/sections/contact.tsx.assets/CV_ Shereen Mokone.pdf and copy it to
public/CV.pdf whenever it is updated, so the download links stay current.lib/portfolio-data.ts.app/layout.tsx if the public site title, description,
or social preview copy changes.