shpetimgashi.com, Portfolio & CV
The site you are reading. One schema-validated data file drives the rendered CV, its print version and the project list.
Overview
This site. A conventional CV can describe front-end work but cannot demonstrate it, and maintaining the same career data across a PDF, a web page, and anything interactive guarantees the three will drift apart. The portfolio was built to solve both problems at once: it is itself the evidence, and it has exactly one place where the data lives.
Architecture
Single source of truth
Experience, education, skills and the project list all live in a single cv.yaml file. A Zod schema validates it at build time, so a malformed date or a missing required field fails the build rather than reaching production. Every CV renderer reads from that one file:
- The rendered HTML CV and its print stylesheet
- The project index, grouped by area
The long-form case studies are their own pages. Within the CV, nothing can silently disagree with anything else.
Design system
A token-based CSS layer with dark and light themes, a dedicated print stylesheet so the page produces a clean PDF, and prefers-reduced-motion handling throughout.
Engineering practice
- CI pipeline: lint, type-check, unit tests, build, checks on the built output and end-to-end tests in Chromium, Firefox and WebKit, run on every change
- Testing: Vitest over the data layer, covering ordering, chronology and a guard that fails the build on content that should not be published, and Playwright for reflow, smoke and accessibility runs against the built site
- Checks on the built output: a second confidentiality scan over everything that ships, the security headers the site actually serves, a JavaScript budget, and email links that survive the host’s rewriting
- Deployment: Cloudflare Pages, published from the main branch and only after every check has passed
Design principle
The same principle recurs here as in the manufacturing optimisation tool and the comfort feedback platform: the answer first, the depth underneath for whoever wants it. The CV reads in thirty seconds; the case studies and the print view are there for anyone who wants to go further.