Personal website source for marcopisco.com, built with TypeScript + Vite and deployed with GitHub Pages.
- TypeScript
- Vite
- Vanilla HTML/CSS
- GitHub Actions + GitHub Pages
- Lanyard WebSocket API (Discord live presence)
- Single-page portfolio layout (hero, about, tech stack, experience, education, contact)
- Live Discord presence cards using Lanyard WebSocket
- Posts section backed by local Markdown files
- Smooth reveal and hover animations
- Responsive layout for desktop and mobile
bun install
bun run devDefault dev URL: http://localhost:5173
bun run typecheck
bun run build
bun run previewThe production build is generated in dist/.
Posts are loaded from the public/writeups directory:
public/writeups/index.jsoncontains metadata for each postpublic/writeups/<slug>.mdcontains the Markdown content
Example index.json item:
{
"slug": "example-post",
"title": "Example Post",
"date": "2026-01-15",
"summary": "Short summary.",
"tags": ["tag1", "tag2"]
}Deployment is fully automated by .github/workflows/deploy-pages.yml:
- Trigger on push to
main - Install dependencies with
bun ci - Build with
bun run build - Upload
dist/artifact - Deploy to GitHub Pages
Custom domain is configured via CNAME (marcopisco.com).
This project is licensed under the GNU General Public License v3.0. See LICENSE.