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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODE1OTksIm5iZiI6MTczOTE4MTI5OSwicGF0aCI6Ii8yNTAyNjI0MS8yNjY3MDUzODQtZjdlNWU5YWItYjI0Yi00ZDM0LTk3NTQtNzgwZWRhODU4ZTk1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA5NTQ1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFlMzAyZjFmZDk3MDEyOTJiZWRkZjU1OTVmMDRjMWRhZjNlZDA3M2VmZTU4NDc0NTk2NGU2NzZhMDc0MTcxMTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.UbQjmJk7D5OJ3rnB5c4i_jDGSDIgwl9n7teLbjd8fW4)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODE1OTksIm5iZiI6MTczOTE4MTI5OSwicGF0aCI6Ii8yNTAyNjI0MS8yNjY4MDA4ODItMWNhNjQxNGYtMDYxZi00ZTk5LTgxOWMtMjI3ZTdlOGZjZWQxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA5NTQ1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE0NjQzMjdkNDg1MDhlOGRiYjlmNDYyNmM0MzQ5OTkxMjAzNjkzOGM4YzMxMDdjODJlYTgzMjE1MTVmZjA0NTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.5_lHHrMCTi1vIuCMZYMqG3S4iZU5ZzWr2O5YibgH7PI)
![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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODE1OTksIm5iZiI6MTczOTE4MTI5OSwicGF0aCI6Ii8yNTAyNjI0MS8yNjY4MDA5MTQtOWFjMGE4ODItZTEyMS00MDExLWJlNjMtNmI5ODQ1MzRhODBhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA5NTQ1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRjYmNiZDRjZmE4ODMwMGE4ZDg2YWNmZmY5NDZjMDExMzA0OTAyM2I4ZmE2N2Q2OTExM2I5ZWIwNjczODMyMTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Ey9XCpkPTfGqhN-D6rJhYTZ0cTQ968ZZlu7yrdZIuTw)
- 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.