Personal portfolio website for Philipp Derks, built with Next.js, React, TypeScript, and Tailwind CSS. The site highlights experience, projects, contact information, and legal pages with a retro terminal/arcade-inspired visual style.
- Next.js App Router with ISR for GitHub project data
- Bilingual content in English and German
- Theme support via
next-themes - GitHub pinned repositories fetched through the GitHub GraphQL API
- Retro UI details including split-flap text, insert-coin gate, circuit background, and optional Aurebesh font mode
- Legal routes for imprint and privacy pages
- Dev Container support for a consistent Node.js development environment
This project includes a dev container configuration with Node.js 22 and the recommended VS Code extensions.
Prerequisites:
Steps:
- Open the repository in VS Code.
- Run Dev Containers: Reopen in Container from the Command Palette, or click Reopen in Container when prompted.
- Start the development server:
npm run dev- Open http://localhost:3000.
Prerequisite: Node.js 22 or later.
Install dependencies:
npm installStart the development server:
npm run devOpen http://localhost:3000.
Copy the example environment file and fill in your GitHub token:
cp .env.example .env.localGITHUB_TOKEN=your_github_tokenGITHUB_TOKEN is used to fetch pinned repositories from the GitHub GraphQL API. A classic token with read:user scope is sufficient. Without the token, the projects section renders without pinned repository data.
For production deployments, add the same variable to your hosting provider's environment settings.
npm run dev— start the development server with webpacknpm run build— build the app for productionnpm run start— run the production buildnpm run lint— lint the source code with ESLint
src/
app/ App Router pages, layout, global styles, legal routes
components/ UI sections and shared components
data/ Experience and social link data
hooks/ Client-side language and UI state hooks
lib/ i18n content and GitHub API integration
public/
fonts/ Local Aurebesh font assets
.devcontainer/ VS Code Dev Container configuration
The site is designed for deployment on Vercel or another Next.js-compatible host.
Before deploying:
- Configure
GITHUB_TOKENin the deployment environment. - Run the production build locally:
npm run build- Deploy the repository through your hosting provider.
The homepage revalidates pinned GitHub repository data at most once per hour via ISR.