Personal
msaouab.dev
This portfolio — data-driven & accessible
The site you're on: a data-driven Next.js portfolio where every project, role, and skill renders from a single typed source — with accessibility and SEO treated as build-time guarantees.
Highlights
- Next.js 16 (App Router) + React 19 + Tailwind CSS 4
- Automated accessibility tests (vitest-axe / axe-core) in the Vitest suite
- SEO: Person JSON-LD, generated Open Graph images, sitemap & robots
Approach
Content lives in one typed module (projects, experience, skills, highlights); pages compose from it, and a skill→project index links each skill to where it actually shipped — no hand-maintained duplication.
Quality
axe-core accessibility checks run inside the Vitest suite, and SEO is generated at build time: Person JSON-LD, Open Graph and icon routes, sitemap, and robots.
Stack
Next.js 16React 19TypeScriptTailwind 4VitestVercel