Personal portfolio site for Arya Kavian — full-stack web developer based in Qa'emshahr, Iran. Static site, deployed to GitHub Pages via GitHub Actions.
Live: https://aryakvn.ir/
index.html— hero / landingresume.html— experience, skills, educationprojects.html— selected open-source and client workblog.html— field notes / writingcontact.html— direct contact, social links, message form
- Vanilla HTML / CSS / JavaScript — no framework, no build step
- Typography: Fraunces (display serif), Geist (UI), JetBrains Mono (metadata)
- Theme: retro warm-black with vermillion + amber accents
- Deployed via GitHub Actions → GitHub Pages
npm run dev
# serves the site at http://localhost:3000 via `npx serve`Or open index.html directly in a browser — there is no build step.
Push to main. The workflow at .github/workflows/deploy.yml will:
- Build — generate
sitemap.xmlandrobots.txt(viascripts/generate-sitemap.js) - Verify — fail the run if either file is missing or empty
- Deploy — upload the repo root as the Pages artifact and publish it
To enable: repo settings → Pages → Source: GitHub Actions.
To override the canonical site URL used in the sitemap, set repo variable
SITE_URL (Settings → Secrets and variables → Actions → Variables).
Defaults to https://aryakvn.ir.
sitemap.xmlandrobots.txtare generated on every deploy and not committed (see.gitignore).- Each HTML page declares a
<link rel="canonical">androbots: index, follow. - Run
npm run sitemaplocally to regenerate them on demand.
.
├── index.html
├── resume.html
├── projects.html
├── blog.html
├── contact.html
├── css/main.css # full stylesheet (design tokens + components)
├── js/main.js # vanilla interactions (clock, reveal, cursor, filters)
├── DESIGN_LANGUAGE.md # reference design system this site is built on
├── .github/workflows/
│ └── deploy.yml # GitHub Pages deploy
├── .nojekyll
└── package.json
This project was developed with the assistance of generative-AI coding assistants. The design direction, content, structure, and final review are human-authored; the AI helped with scaffolding, CSS authoring, copy drafting, and accessibility / responsive boilerplate. Where the AI generated content that would not be accurate without verification (experience, projects, external links), it was reviewed against real public sources (GitHub, LinkedIn, the project website) before publishing.
Personal portfolio — code is MIT, content is © Arya Kavian.