Files
bio/README.md
T

70 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Bio site
This repo is my personal portfolio: one long scrolling page with a hero, skills, projects, experience, and a bit of “who I am” at the bottom. I wanted something fast, static, and easy to tweak without a CMS—just TypeScript content files and Vue components.
If you landed here to fork it for yourself, the **product spec** lives in [`PRD/PRDs/Bio Site PRD.template.md`](PRD/PRDs/Bio%20Site%20PRD.template.md). Copy that file, fill it in locally, and keep anything too specific for public GitHub out of the tracked tree (see `.gitignore`).
## What’s inside
- **Vue 3 + Vite** for the UI
- **Tailwind** for layout and color
- **GSAP** for scroll-triggered section reveals (loaded on demand so the first paint stays light)
- **Shipped as static HTML/JS/CSS** in `dist/`—fine for Netlify-style hosts, GitHub Pages, or a tiny **nginx** container (see `Dockerfile`)
## Run it locally
You’ll want Node 20+ (22 matches CI/Docker).
```bash
npm install
npm run dev
```
Vite will print a URL—usually `http://localhost:5173`.
## Build for production
```bash
npm run build
npm run preview
```
Output is in `dist/`.
## Docker (optional)
The container only serves prebuilt files with nginx; there is no Node process at runtime.
```bash
docker build -t bio-site .
docker run --rm -p 8080:80 bio-site
```
Or with Compose (defaults to host port **8080**):
```bash
docker compose up -d --build
```
If the site is **not** at the root URL (e.g. GitHub Pages project pages), set a base path at build time—see `VITE_BASE` in `docker-compose.yml` and the GitHub Pages note below.
## GitHub Pages (project site)
If the live URL looks like `https://username.github.io/repo-name/`, set repo variable **`VITE_BASE`** to `/repo-name/` (Actions → Variables), enable Pages from Actions, and use [`.github/workflows/pages.yml`](.github/workflows/pages.yml). For a user site at the repo root, leave `VITE_BASE` unset.
## Make it yours
| What | Where |
|------|-------|
| Name, links, email, tagline | `src/content/site.ts` |
| Skills | `src/content/skills.ts` |
| Projects | `src/content/projects.ts` |
| Roles | `src/content/experience.ts` |
| Avatar | Replace or point `public/` assets from `HeroSection.vue` |
| Resume link | Add `public/resume.pdf` on your machine before build/deploy; it is **gitignored** so a public clone does not ship your PDF (the download link still works in your own builds) |
| SEO / social | `index.html` (`title`, description, Open Graph, `og:url`) |
## License
Private / personal use—change the license if you fork for something public.