Personal portfolio for Daniel Guntermann — DevOps / AI / Cybersecurity.
Built as a single-page site with a "build log" aesthetic: minimal, dark-first, technical.
- Astro — static site generation
- Tailwind CSS v4 — utility-first styling
- Cloudflare Pages — hosting & edge functions
- Cloudflare Turnstile — invisible bot protection for contact form (pre-rendered on page load)
- TypeScript — throughout
npm install
npm run dev-
Push this repo to GitHub (already done).
-
Go to Cloudflare Dashboard → Workers & Pages → Create → Pages → Connect to Git.
-
Select the
danctrl-portfoliorepository. -
Set the build configuration:
- Framework preset: Astro
- Build command:
npm run build - Output directory:
dist
-
Add the following Environment Variables (Settings → Environment Variables):
-
Click Save and Deploy.
Every push to master triggers an automatic redeploy.
src/
components/ # Astro components (Hero, Timeline, Projects, Contact …)
layouts/ # Base Layout.astro
pages/ # index.astro
functions/
api/
contact.ts # Cloudflare Pages Function – contact form handler
public/ # Static assets
MIT
