https://github.com/cadamsmith/cadamsmith.dev
🚀 Personal portfolio site built with Astro + Svelte 5
https://github.com/cadamsmith/cadamsmith.dev
astro cloudflare-pages eslint frontend jamstack personal-website portfolio scss static-site svelte svelte5 typescript vitest
Last synced: 24 days ago
JSON representation
🚀 Personal portfolio site built with Astro + Svelte 5
- Host: GitHub
- URL: https://github.com/cadamsmith/cadamsmith.dev
- Owner: cadamsmith
- License: mit
- Created: 2022-07-07T05:32:28.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2026-05-16T02:04:11.000Z (about 1 month ago)
- Last Synced: 2026-05-16T03:46:35.322Z (about 1 month ago)
- Topics: astro, cloudflare-pages, eslint, frontend, jamstack, personal-website, portfolio, scss, static-site, svelte, svelte5, typescript, vitest
- Language: Astro
- Homepage: https://cadamsmith.dev
- Size: 7.57 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cadamsmith.dev
Personal portfolio site built with **Astro** + **Svelte 5**, deployed on **Cloudflare Pages**.

## Stack
- [Astro](https://astro.build/) — static site generation, file-based routing, content collections
- [Svelte 5](https://svelte.dev/) — interactive islands (skills widget, timeline, music player, map)
- [Leaflet](https://leafletjs.com/) — interactive location map
- [Cloudflare Pages](https://pages.cloudflare.com/) — hosting and deployment
- [TypeScript](https://www.typescriptlang.org/) — throughout
## Architecture
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 |
## Local Setup
```bash
git clone https://github.com/cadamsmith/cadamsmith.dev.git
cd cadamsmith.dev
npm install
npm run dev
```
## Commands
```bash
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
```