Personal portfolio website with CMS-powered resume editing.
Live Site: camerongreens.com
Resume Editor: camkgreen.sanity.studio
# Start Next.js site
cd nextjs
npm install
npm run dev # http://localhost:3000
# Start Sanity Studio (optional)
cd sanity-studio
npm install
npm run dev # http://localhost:3333
Option 1: Mobile/Web CMS + GitHub Action (Automated)
Option 2: Mobile/Web CMS + Manual Sync
cd scripts && npm run sync-from-sanity
git add resume.json && git commit -m "Update resume" && git push
Option 3: Direct JSON Editing
resume.json
directlycd scripts && npm run sync-to-sanity
devportfolio/
├── resume.json # Single source of truth
├── nextjs/ # Next.js portfolio site
│ ├── src/
│ │ ├── app/ # Pages & API routes
│ │ ├── components/ # React components
│ │ └── styles/ # SCSS styles
│ └── public/Resume.pdf # Auto-generated PDF
├── sanity-studio/ # Content Management System
│ ├── schemas/resume.ts # Resume data structure
│ └── sanity.config.ts # Studio configuration
├── scripts/ # Sync utilities
│ ├── sync-json-to-sanity.js # Import JSON → Sanity
│ └── sync-sanity-to-json.js # Export Sanity → JSON
└── pdf/ # PDF generator
└── generate-resume.js # Creates Resume.pdf
resume.json
cd scripts && npm run sync-from-sanity
git add resume.json && git commit -m "Update resume"
git push
(triggers Netlify deployment)resume.json
directlycd scripts && npm run sync-to-sanity
git add resume.json && git commit -m "Update resume"
git push
(triggers Netlify deployment)cd pdf
node generate-resume.js --output /path/to/output.pdf
For detailed information about the Sanity CMS integration, see:
Required for full functionality:
nextjs/.env.local
:
NEXT_PUBLIC_SANITY_PROJECT_ID=qet8gm0s
NEXT_PUBLIC_SANITY_DATASET=production
SANITY_WEBHOOK_SECRET=<your-secret>
GITHUB_TOKEN=<your-token>
GITHUB_REPO=Ecleptic/devportfolio
GITHUB_BRANCH=master
sanity-studio/.env.local
:
SANITY_STUDIO_PROJECT_ID=qet8gm0s
SANITY_STUDIO_DATASET=production
SANITY_API_TOKEN=<your-token>
GITHUB_TOKEN=<your-token>
SANITY_WEBHOOK_SECRET=<your-secret>
Add Sanity Studio to your phone:
Automatic: Push to GitHub → Netlify builds and deploys
Manual: cd nextjs && npm run build
→ Upload out/
directory
MIT License - See LICENSE.md
Cameron Green