Personal portfolio for jonathantiritilli.com — built with Astro, deployed to S3 + CloudFront.
npm install
npm run dev # http://localhost:4321
npm run build # output in dist/
npm run previewsrc/pages/— routes (index.astro,404.astro)src/components/— one component per sectionsrc/layouts/Base.astro— shared shellsrc/styles/tokens.css— design tokens (palette, type, spacing)src/styles/global.css— base styles, utilities, button systemsrc/scripts/main.js— small vanilla JS for the back-to-top button and press effectpublic/assets/— fonts and images
GitHub Actions (.github/workflows/deploy.yml) builds on push to master, syncs dist/ to S3, and invalidates CloudFront. Configure in repo settings:
- Variables:
S3_BUCKET,CLOUDFRONT_DISTRIBUTION_ID,AWS_REGION,AWS_DEPLOY_ROLE_ARN - Or, secrets:
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY(fallback if no OIDC role)