Personal Website
Find a file
Benjamin Palko 45d705a1c8
All checks were successful
Deploy / deploy (push) Successful in 1m6s
explicitly define args
2026-08-12 08:20:44 -04:00
.forgejo/workflows explicitly define args 2026-08-12 08:20:44 -04:00
.opencode set up new workflow and migrate to .forgejo dir (#5) 2026-08-11 20:55:29 -04:00
src set up new workflow and migrate to .forgejo dir (#5) 2026-08-11 20:55:29 -04:00
static update profile pic 2026-06-16 13:12:24 -04:00
.editorconfig editorconfig 2025-06-26 22:12:18 -04:00
.gitignore mobile-friendly (#2) 2025-05-01 13:33:06 -04:00
.npmrc init 2025-01-19 12:46:43 -05:00
.prettierignore set up new workflow and migrate to .forgejo dir (#5) 2026-08-11 20:55:29 -04:00
.prettierrc set up new workflow and migrate to .forgejo dir (#5) 2026-08-11 20:55:29 -04:00
AGENTS.md set up new workflow and migrate to .forgejo dir (#5) 2026-08-11 20:55:29 -04:00
eslint.config.js set up new workflow and migrate to .forgejo dir (#5) 2026-08-11 20:55:29 -04:00
mise.toml switch to pnpm 2026-08-11 14:58:11 -04:00
netlify.toml set up new workflow and migrate to .forgejo dir (#5) 2026-08-11 20:55:29 -04:00
package.json set up new workflow and migrate to .forgejo dir (#5) 2026-08-11 20:55:29 -04:00
pnpm-lock.yaml set up new workflow and migrate to .forgejo dir (#5) 2026-08-11 20:55:29 -04:00
pnpm-workspace.yaml switch to pnpm 2026-08-11 14:58:11 -04:00
README.md set up new workflow and migrate to .forgejo dir (#5) 2026-08-11 20:55:29 -04:00
skills-lock.json set up new workflow and migrate to .forgejo dir (#5) 2026-08-11 20:55:29 -04:00
svelte.config.js remove console log 2026-01-27 10:03:31 -05:00
tailwind.config.ts fix shit 2025-04-30 17:00:03 -04:00
tsconfig.json init 2025-01-19 12:46:43 -05:00
vite.config.ts fix shit 2025-04-30 17:00:03 -04:00

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