Source code for the personal website kappes.space, built with SvelteKit and Tailwind CSS.
| Technology | Purpose |
|---|---|
| SvelteKit | Application framework |
| Svelte | UI component model |
| Tailwind CSS | Styling |
| TypeScript | Type checking |
| Vite | Build tooling |
| tsparticles | Particle animations |
The site is compiled to a fully static build using @sveltejs/adapter-static and served via nginx in a Docker container.
kappes-space/
├── src/ # SvelteKit application source
├── static/ # Static assets (fonts, images, etc.)
├── docker/
│ └── nginx.conf # nginx configuration for the production container
├── .github/workflows/ # GitHub Actions CI/CD pipelines
├── Dockerfile # Multi-stage build (deps, builder, nginx server)
├── svelte.config.js # SvelteKit configuration (static adapter)
├── tailwind.config.cjs # Tailwind CSS configuration
└── vite.config.ts # Vite configuration
Install dependencies:
npm installStart the development server:
npm run dev
# or open the app directly in a browser tab
npm run dev -- --openRun type checks:
npm run checkCreate a production build:
npm run buildPreview the production build locally:
npm run previewThe Dockerfile uses a three-stage build:
- deps installs npm dependencies on
node:22-alpine - builder runs
npm run buildto produce the static output - server copies the build output into an
nginx:alpineimage for serving
Build and run the container locally:
docker build -t kappes-space .
docker run -p 8080:80 kappes-spaceThe site is deployed on Kubernetes. The GitHub Actions workflow builds and pushes the Docker image on each release. The Helm chart used for the Kubernetes deployment is maintained in the separate helm-charts repository.