Personal portfolio site built with Astro + Svelte 5, deployed on Cloudflare Pages.
All pages are prerendered at build time (static output). Interactive components are mounted as Svelte islands with client:visible.
Site content is driven by Astro content collections in src/content/:
| Collection | Description |
|---|---|
skills/ |
Tech skills shown in the skills widget |
timeline/ |
Work and education history with location + coordinates |
songs/ |
Music player playlist (YouTube embeds) |
blurbs/ |
Hero and contact section copy |
heroTags/ |
Info tags shown in the hero section |
git clone https://github.com/cadamsmith/cadamsmith.dev.git
cd cadamsmith.dev
npm install
npm run dev
npm run dev # Start development server
npm run build # Build for production (static output to dist/)
npm run preview # Preview production build
npm run test # Run Vitest unit tests
npm run lint # Run Prettier + ESLint checks
npm run format # Auto-format with Prettier
npm run check # Astro type checking