Personal portfolio site built with Astro 5, vanilla JavaScript, and modern SCSS.
- Framework: Astro 5 (static output)
- Styling: SCSS with modern syntax (no
@import,calc(), etc.) - JavaScript: Vanilla ES2020+ (no jQuery, no frameworks)
Requires Node.js 22+.
npm install
npm run dev # Start dev server at http://localhost:4321
npm run build # Build static site to dist/
npm run preview # Preview production buildsrc/
pages/
index.astro # Main portfolio page
layouts/
styles/
main.scss # All site styles
data/
projects.ts # Project data
resume.md # Resume markdown
scripts/
(via public/)
public/
scripts/
app.js # Vanilla JS
img/ # Project images
Set up a GitHub Actions workflow to build and deploy to GitHub Pages. See .github/workflows/deploy.yml.
- No build artifacts (
dist/,.astro/) are committed to git - Projects marked as
archived: trueinsrc/data/projects.tsare hidden from display - Copyright year is rendered client-side