Portfolio app built with Next.js 13 & Contentlayer, MDX
Demo
![Cover](https://private-user-images.githubusercontent.com/25026241/266705384-f7e5e9ab-b24b-4d34-9754-780eda858e95.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM0NDQxMjcsIm5iZiI6MTcyMzQ0MzgyNywicGF0aCI6Ii8yNTAyNjI0MS8yNjY3MDUzODQtZjdlNWU5YWItYjI0Yi00ZDM0LTk3NTQtNzgwZWRhODU4ZTk1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODEyVDA2MjM0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA0MWU1NjM0OTI5ODgwZWQxMTQyOGE5Mzk4ODg1ZGU5YTQ0YmUzOWMzODE5MmU5NDQwM2NiOTNiMmE5M2MxMzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.w6e2CX90B4P9eEIr_95q5e01eS466dZobmsdZGj4Bb0)
portfolio-app-preview.mp4
![Screenshot 2023-06-10 at 10 00 18 PM](https://private-user-images.githubusercontent.com/25026241/266800882-1ca6414f-061f-4e99-819c-227e7e8fced1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM0NDQxMjcsIm5iZiI6MTcyMzQ0MzgyNywicGF0aCI6Ii8yNTAyNjI0MS8yNjY4MDA4ODItMWNhNjQxNGYtMDYxZi00ZTk5LTgxOWMtMjI3ZTdlOGZjZWQxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODEyVDA2MjM0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQyYmI1ODM5ZTU5ZTE2MDEwMjNiZDhiNTdkYWQwZjQwNmMwNTJiMGQ4YjRkNDJkMWQ1MjUwMTMzOWRiNDkxYTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.OH03RY7ZDwPtdK0xKA4ELjiQ2qlN5p2LEKD0MBUxV6o)
![Screenshot 2023-06-10 at 10 00 18 PM](https://private-user-images.githubusercontent.com/25026241/266800914-9ac0a882-e121-4011-be63-6b984534a80a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM0NDQxMjcsIm5iZiI6MTcyMzQ0MzgyNywicGF0aCI6Ii8yNTAyNjI0MS8yNjY4MDA5MTQtOWFjMGE4ODItZTEyMS00MDExLWJlNjMtNmI5ODQ1MzRhODBhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODEyVDA2MjM0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ0NDUwNjY3ZDFjMDBmYTdjOWNhNmQ2ZGE3ZjJiMGM1ZmFhMTQ4MWNjZmQxZWFkOGE3MTE0MGNlYmE5OWY4MTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.JaVfHJaF5RHzgheGjJ4LqV7vCuOjjmrt75md8_4Y3-M)
- App Router,
- Server Actions
- Server and Client Components
- Metadata files
- Open Graph Image Generation using Vercel/Og
- UI Components built using Shadcn UI, Radix UI and Headless UI,
- Pages and blogs are using MDX and Contentlayer
- Sending emails using NodeMailer and React Email, Gmail
- Styled using Tailwind CSS
- Icons using Heroicons and Lucide
- Validations using Zod
- Written in TypeScript
To run this app locally you need
- Node.js (Version: >=18.x)
- Node Package Manager NPM - included in Node.js
- PostgreSQL (local or remote)
Want to get up and running quickly? Follow these steps:
-
Clone the repository it to your local device.
git clone https://github.com/timtbdev/Next.js-Portfolio-App.git
-
Set up your
.env.local
file using the recommendations in the.env.example
file. -
Run
npm installation --legacy-peer-deps
in the root directorynpm installation --legacy-peer-deps
-
Run
npm run dev
in the root directory -
Want it even faster? Just use
npm run d
That's it! You should now be able to access the app at http://localhost:3000
Admin dashboard will also be available on http://localhost:300/dashboard
- Tim (@timtbdev)
Licensed under the MIT license.