A personal portfolio website built with a modern tech stack, featuring a dynamic frontend and a headless CMS for content management.
This project is organized into two main parts:
- Framework: Astro (v5) - For fast, content-focused performance.
- Styling: Tailwind CSS (v4) - Utility-first CSS framework.
- Interactivity: Alpine.js - Lightweight JavaScript framework.
- Analytics: Vercel Analytics
- Deployment: Vercel
- CMS: Sanity.io - Unified Content Platform.
- Framework: React-based Sanity Studio.
frontend/: Contains the Astro application code.studio/: Contains the Sanity Studio configuration and schemas.
- Node.js (v18 or later recommended)
- npm or yarn
-
Clone the repository:
git clone <your-repository-url> cd portfolio
-
Install Frontend Dependencies:
cd frontend npm install -
Install Studio Dependencies:
cd ../studio npm install
You can run both the frontend and the studio concurrently or separately.
Navigate to the frontend directory and start the dev server:
cd frontend
npm run devThe site will be available at http://localhost:4321.
Navigate to the studio directory and start the Sanity Studio:
cd studio
npm run devThe studio will be available at http://localhost:3333.
You will need to set up environment variables for the frontend to connect to Sanity. Create a .env file in the frontend directory:
PUBLIC_SANITY_PROJECT_ID=your_project_id
PUBLIC_SANITY_DATASET=productionThe frontend is configured for deployment on Vercel. Connect your repository to Vercel and it should detect the Astro settings automatically.
To deploy the Sanity Studio:
cd studio
npm run deploy