Static personal website (About · Resume · Certificates · Blog) built with Eleventy. All content lives in plain files in this repository and is edited through an admin panel (Sveltia CMS).
docker compose up devOpen http://localhost:8080. Edits to templates, CSS, JS or content reload the page automatically.
To check the production build exactly as GitHub Pages will serve it (nginx, no custom headers):
docker compose up --build previewOpen http://localhost:8081.
Every build first runs npm run validate, which checks all content against the JSON Schemas in schemas/.
Invalid content (for example a javascript: link or an image outside src/assets/uploads/) stops the build.
Open http://localhost:8080/admin/ in Chrome or Edge and choose Work with Local Repository (select this folder) to edit content locally.
On the live site, the admin is at https://USER.github.io/admin/ with Sign In with GitHub. See docs/ADMIN_GUIDE.md.
Content-pipeline security tests (fast; also run on every deploy):
docker compose run --rm dev npm run test:unitBrowser tests in Chromium, Firefox and WebKit against the production build (behaviour, CSP, accessibility, responsive layout):
docker compose --profile test run --rm testThe HTML report is written to playwright-report/, screenshots to test-results/.
docker compose run --rm dev npm run validatedocker compose run --rm dev npm run build- docs/ADMIN_GUIDE.md — how to edit the site (for Saba)
- docs/DEPLOY.md — launch runbook and GitHub settings checklist
- docs/SECURITY.md — security controls, tests and known limits
Design based on vCard – Personal portfolio by codewithsadee (MIT). Icons: Ionicons (MIT). Font: Poppins (SIL OFL 1.1).
