Peter Binkowski's personal site.
- Astro - Static site generator
- CSS with shared color, typography, and spacing tokens
- System font stack (no web fonts); system monospace only for tags and dates
- Warm paper palette with a single burnt-orange accent; light and dark themes
- Reading column with a sticky sidebar for a short bio, links, music, and reading
# Install dependencies
npm install
# Start dev server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewsrc/
├── components/ # Header, navigation, footer, theme, and current interests
├── content/blog/ # Blog posts (Markdown)
├── content/work/ # Portfolio projects (Markdown)
├── data/ # Reading list and quotes
├── layouts/ # Base layout
├── pages/ # Page routes
│ ├── index.astro
│ ├── about.astro
│ ├── quotes.astro
│ ├── reading.astro
│ ├── blog/
│ └── work/
└── styles/ # Shared CSS stylesheet
public/
└── images/ # Static images
The site deploys automatically to NearlyFreeSpeech via GitHub Actions on push to main.
Add these in Settings > Secrets and variables > Actions:
NFSN_USERNAME- NearlyFreeSpeech SSH usernameNFSN_PASSWORD- NearlyFreeSpeech SSH passwordNFSN_HOSTNAME- NFSN SSH hostname (e.g.,ssh.phx.nearlyfreespeech.net)
Add Markdown files to src/content/blog/:
---
title: "Post Title"
date: 2024-01-01
---
Post content here...Quotes and the reading list live in src/data/. Portfolio projects live in src/content/work/. Archived and draft blog posts remain unpublished.
small edit