My personal portfolio website designed to be simplistic and clean while including features like MDX blog posts with view counts, a dark mode toggle, gear list, an about page, and more. Thanks to @brianruizy and @samuelkraft for their work on this project !
backend:
- Next.js / TypeScript
- MDX / Contentlayer (Blog Posts)
- PlanetScale (Database)
- Prisma (ORM)
frontend:
- Tailwind CSS (Styling)
- Radix Primitives (Headless UI components)
- Radix UI Colors (Color system)
- Framer Motion (Animations)
feaas (frontend-as-a-service):
- Vercel (Deployment)
Make sure you have Node.js v18.3.0+ installed on your machine.
- Install Dependencies:
npm install
- Environment variables: Copy
.env.example
to a new.env
- Database Setup: See Database Setup
- Prisma Setup:
npm install @prisma/client
(if you haven't already), then runnpx prisma generate
. - Start Developing:
npm run dev
, this will automatically create the .contentlayer files and start the Next.js development server.
- Sign up for a PlanetScale account
- Create a new database in PlanetScale
- Update the DATABASE_URL environment variable in your project's
.env
file with the connection string provided by PlanetScale then runnpx prisma db push
.
This project can be easily deployed to Vercel. Simply connect your Vercel account to your GitHub repository, and Vercel will automatically build and deploy your application with each new push to the main branch.
Add the project .env
variables to your Vercel project settings.