Personal portfolio website for Patrick Semler, featuring selected projects, professional experience, contact information, and a downloadable résumé.
Live site: patricksemler.dev
- Next.js 16 with the App Router
- React 19
- TypeScript
- Tailwind CSS 4
- GitHub Pages
The site is statically exported for fast, serverless hosting.
- Node.js 22
- npm
npm install
npm run devOpen http://localhost:3000 in your browser.
| Command | Description |
|---|---|
npm run dev |
Start the local development server |
npm run build |
Create the production static export in out/ |
npm run lint |
Check the project with ESLint |
Most portfolio content is centralized in
content/profile.ts, including profile details, links,
projects, and experience.
- Update site content in
content/profile.ts. - Replace
public/resume.pdfto update the résumé. - Edit global styles and design tokens in
app/globals.css. - Update page metadata in
app/layout.tsx.
Pushes to main are built and deployed to GitHub Pages through
.github/workflows/deploy.yml. The workflow
installs dependencies, creates the static export, and publishes the generated
out/ directory.