benjaminpalko/README.md
Benjamin Palko 00006a013d
Some checks failed
PR Gate / Checks (pull_request) Failing after 17s
set up new workflow and migrate to .forgejo dir
2026-08-11 15:57:25 -04:00

2.2 KiB

benjaminpalko.ca

Personal website and blog for Benjamin Palko, built with SvelteKit and deployed on Netlify.

Stack

  • SvelteKit 5 / Svelte 5
  • TypeScript (strict)
  • Tailwind CSS 4 + daisyUI
  • mdsvex markdown for blog posts
  • pino (server-side logging)
  • @lucide/svelte icons

Prerequisites

  • mise (or Node + the pnpm version pinned in mise.toml)

Setup

pnpm install

Development

pnpm dev        # start dev server
pnpm dev --open # start dev server and open the app in a browser

Scripts

Command What it does
pnpm dev Start dev server
pnpm build Production build
pnpm preview Preview the production build
pnpm check svelte-kit sync + svelte-check (typecheck)
pnpm lint Prettier check + ESLint
pnpm format Prettier write
pnpm test:unit Vitest (watch mode)
pnpm test Vitest (single run)

Blog

Posts live at src/lib/posts/*.md as mdsvex markdown. Follow src/lib/posts/template.md.sample for frontmatter (title, description, image, date, categories, published). Categories are one of development, work, life. The slug is the filename; only posts with published: true appear on the site.

See AGENTS.md for the full authoring workflow.

Deployment

The site deploys to Netlify on every push to main via a Forgejo Actions workflow (.forgejo/workflows/deploy.yml): it installs with pnpm, runs pnpm build, and deploys the build/ directory with netlify-cli. Requires NETLIFY_AUTH_TOKEN and NETLIFY_SITE_ID configured as repository secrets in Forgejo. Netlify's GitHub-app continuous deployment is disabled.

The GitHub Actions PR gate (.github/workflows/pr.yml) runs on the GitHub mirror on every pull request using pnpm. Before shipping, verify locally with:

pnpm lint && pnpm check && pnpm test && pnpm build