Astro-based personal website for B2B marketing, AI, growth systems, ideas, and experiments.
- Astro
- Semantic HTML
- Modern CSS
- Minimal JavaScript
- Static output suitable for Cloudflare Pages
npm install
npm run devAstro will print the local URL, typically http://localhost:4321.
npm run build
npm run previewThe generated static site is written to dist/.
git init
git add .
git commit -m "Initial personal site"
git branch -M main
git remote add origin <YOUR_GITHUB_REPO_URL>
git push -u origin mainThe repository root must contain package.json, src/, and public/ directly. Do not put the project inside an extra heidi-site/ folder in GitHub.
For a Cloudflare Pages Git deployment:
- In Workers & Pages, create/select a Pages project and connect this GitHub repository.
- Framework preset: Astro.
- Root directory:
/(repository root). - Build command:
npm run build. - Build output directory:
dist. - Leave the deploy command blank; Pages deploys the
distdirectory after a successful build.
A successful Astro build should report three generated routes (/, /ideas/, and /about/), not 0 page(s) built.
If Cloudflare is instead configured as a Workers Builds project and requires a deploy command, use a Pages project for this static version rather than npx wrangler deploy.
Search the codebase for these placeholders:
https://example.com→ your production domainhello@example.com→ your email address
The LinkedIn URL is currently set to:
https://www.linkedin.com/in/heidivandermeer
- Homepage:
src/components/ - Hero:
src/components/Hero.astro - Focus areas:
src/components/FocusAreas.astro - Selected ideas:
src/components/SelectedIdeas.astro - About preview:
src/components/AboutPreview.astro - Connect section:
src/components/Connect.astro - Global visual system:
src/styles/global.css
A portrait can later be added at:
public/images/heidi-vandermeer.jpg
The current homepage intentionally uses a polished abstract placeholder so the site works without photography.
Add an Open Graph/social image at:
public/images/og-default.jpg
The Selected Ideas component is currently data-driven inside the component. It can later be moved into Astro content collections or Markdown without redesigning the card system.