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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA5OTU1NzksIm5iZiI6MTcyMDk5NTI3OSwicGF0aCI6Ii8yNTAyNjI0MS8yNjY3MDUzODQtZjdlNWU5YWItYjI0Yi00ZDM0LTk3NTQtNzgwZWRhODU4ZTk1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE0VDIyMTQzOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZlYjczODA2NTVkZTI5ZGUxMmJkM2UxZDc5MWE5ZDVjY2FiYjFkODQxZTU3Y2E3MWQ5NTU5ZWVjN2IwYjJhODImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.phkqLv1zRx4Bj2EDr6I4YrGhiFrtZGm8B3T_Q9VSZl0)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA5OTU1NzksIm5iZiI6MTcyMDk5NTI3OSwicGF0aCI6Ii8yNTAyNjI0MS8yNjY4MDA4ODItMWNhNjQxNGYtMDYxZi00ZTk5LTgxOWMtMjI3ZTdlOGZjZWQxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE0VDIyMTQzOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI3MTc0MDBmMWM0MmExYWIwYjBhYWQwNjk0OGRjMzU4YjQ3MWM0MTYwYzBmYjliYTYxNzI3NmE3ZjQzMDBhYmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.O43CKyBrFDKtO6bZugbH61PAjE-9zmQ2buDzRUMkSFY)
![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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA5OTU1NzksIm5iZiI6MTcyMDk5NTI3OSwicGF0aCI6Ii8yNTAyNjI0MS8yNjY4MDA5MTQtOWFjMGE4ODItZTEyMS00MDExLWJlNjMtNmI5ODQ1MzRhODBhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE0VDIyMTQzOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTcyZGMwZjI3MzNjZjdkMWRmNDBmYjYwNGJmYTI3N2VmMTVhYTQ3M2IxMzYzYWU5YzAyNmUwOGU5MWJmYzIzMDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.irTTOIcllEkbhLqShneur699EO9XK3a2Qseu5fu-yAM)
- 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.