The personal portfolio of Sonfack Nelson Mandela, creative product developer. Live at snmandela.com.
A single, compact page in English and French, styled after ui.shadcn.com.
- Next.js 16 (App Router) and TypeScript
- Tailwind CSS v4 and shadcn/ui (Base UI)
- next-intl for English and French
- next-themes for light and dark mode
Requires Node.js 20 or later.
npm install
npm run devOpen http://localhost:3000. The French version is at /fr.
| Command | What it does |
|---|---|
npm run dev |
Start the dev server |
npm run build |
Build for production |
npm run start |
Serve the production build |
npm run lint |
Run ESLint |
| What | Where |
|---|---|
| Name, links, skills, projects, companies | src/lib/site.ts |
| All text, in both languages | messages/en.json, messages/fr.json |
| Project and company logos | public/logos/ |
| Brand logo and colors | public/brand/, src/app/globals.css |
Each project and job in site.ts has an id; its translated text lives under the same key in the message files.
robots.txtandsitemap.xml(with English/French alternates)- A social preview image per language:
src/app/[locale]/opengraph-image.tsx - schema.org
Persondata on the home page /llms.txt, a plain-text summary of the site for AI agents
You're welcome to fork it for your own portfolio. Please replace my name, content, logos and brand assets with your own.
Found a bug or a typo? Issues and pull requests are welcome. See CONTRIBUTING.md.
Code released under the MIT License. The personal content (text, logo, and project and company logos) is not covered by the license.