Migrated from Next.js/Vercel to Astro/Cloudflare Pages bc of vercel's political beliefs.
npm install
npm run dev- Push this repo to GitHub (keep it public or private — your choice)
- Go to Cloudflare Pages → Create application → Pages → Connect to Git
- Select your repo
- Use these build settings:
- Framework preset: Astro
- Build command:
npm run build - Build output directory:
dist
- Click Save & Deploy — done!
Every push to main automatically redeploys.
Only needed if you add server-side routes (API endpoints, SSR pages). For a static portfolio site you don't need it.
If you do want it later, in astro.config.mjs:
import cloudflare from '@astrojs/cloudflare';
// ...
output: 'server',
adapter: cloudflare(),In src/pages/projects.astro, find the project and uncomment/add the github field:
{
title: "My Project",
// ...
github: "https://github.com/thatdudegrantt/my-project",
}- Public repos: visitors can browse your code ✅
- Private repos: card still links out, but visitors see a 404 — use sparingly
src/
├── layouts/
│ └── Layout.astro ← Navbar + theme toggle (replaces next-themes)
├── pages/
│ ├── index.astro ← Homepage
│ ├── projects.astro ← Projects grid ← ADD GITHUB LINKS HERE
│ ├── resume.astro ← (migrate from src/app/resume/page.js)
│ └── contact.astro ← (migrate from src/app/contact/page.js)
├── components/
│ ├── HomeContent.jsx ← Framer Motion home sections
│ └── ProjectCard.jsx ← Truncated descriptions + clickable card
└── styles/
└── globals.css
src/app/resume/page.js→src/pages/resume.astrosrc/app/contact/page.js→src/pages/contact.astrosrc/components/Navbar.js→ already replaced by Layout.astro's built-in navbarsrc/components/ThemeProvideWrapper.js→ replaced by Layout.astro's inline script
Send those files when ready!