Static
  • HTML 43.8%
  • CSS 27.3%
  • Rust 17.2%
  • JavaScript 11.7%
Find a file
Abdulrazaq Alhendi f5b9e19bf5 feat: refresh site and add Cloudflare deployment
- Consolidate About and resume content with two PDF downloads
- Refresh homepage and fix dark-mode navigation
- Add static deployment and resume export tooling
- Clean up legacy files and documentation
- Fix responsive 404 layout
2026-09-06 00:12:47 +03:00
.github/ISSUE_TEMPLATE refactor: migrate static site from Astro to vanilla HTML with CSS variables theming 2025-11-20 07:48:49 +03:00
assets feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
fonts feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
tools feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
.editorconfig feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
.gitattributes feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
.gitignore feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
.node-version feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
404.html feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
_headers feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
_redirects feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
about.html feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
favicon.ico refactor: migrate static site from Astro to vanilla HTML with CSS variables theming 2025-11-20 07:48:49 +03:00
index.html feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
LICENSE Moved to Astro 2022-07-07 14:56:16 +03:00
package-lock.json feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
package.json feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
README.md feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
resume.css feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
resume.js feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
robots.txt feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
style.css feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
theme.js feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00
wrangler.jsonc feat: refresh site and add Cloudflare deployment 2026-09-06 00:12:47 +03:00

aalhendi.com

Personal website built with plain HTML, CSS and JavaScript.

Local development

Use the Node.js version in .node-version.

npm ci
npm run preview

npm run check validates local asset references and runs a deployment dry-run.

Content

  • index.html: homepage introduction.
  • about.html: experience, selected work and resume downloads.
  • style.css, resume.css, theme.js, resume.js: presentation and behaviour.
  • assets/ and fonts/: published images, PDFs and fonts.
  • tools/: site packaging and PDF generation.

Resume PDFs

about.html is the shared source for the website and both PDF editions. Edit it, then regenerate the PDFs using Rust and an installed Chromium-based browser:

cargo run --quiet --manifest-path tools/resume-export/Cargo.toml -- all

The exporter produces a two-page resume and one-page highlights document in assets/. Check the page counts, selectable text and visual layout before publishing. Set RESUME_BROWSER to select a browser executable when needed.

Deployment

The site uses Cloudflare Workers Static Assets.

npm run cf:login
npm run check
npm run deploy

tools/build-site.mjs copies an explicit public asset list into dist/. Deployment publishes the current local files; it does not require a Git commit. Build output, temporary files and local credentials are excluded from Git.