adhamaa.github.io
This site
- Status
- active
- Year
- 2026
- Role
- Design + build
Why a portfolio needs a pipeline
A portfolio is a claim about how you work. If it is slow, inaccessible or quietly broken, it argues against you — so this site is held to the same standard as the systems it shows.
One build, tested, then shipped
The site is a fully static export of Next.js served by GitHub Pages: no server, nothing to patch, nothing to pay for. A single CI pipeline builds that export once, lints and typechecks it, and runs a Playwright smoke suite against the exact files that will deploy. Only that tested build goes live, and releases cut themselves from conventional commits.
The smoke suite only asserts what a visitor can see — headings, links, the command palette opening and filtering — never class names or markup. That is what let the stack move from Tailwind 3 to 4 and from Radix to React Aria without the tests becoming noise.
Decisions written down
The choices that would surprise a newcomer are recorded as short decision records: React Aria as the component base, for the keyboard-driven command palette and sortable table; Tailwind 4 and the browser floor it brings; and a Git-based CMS on a static site.
Its own CMS
Content — the profile, Projects, Roles and the stack — lives in plain files in the repository and is edited at /admin, from any device. Every save is a commit that goes through the same pipeline, and the build checks the rules a layout depends on: highlights per Project, screenshot sizes, image weights. A broken edit fails the build instead of reaching the live site.