An improvement of my old portfolio website, built using NextJS and Tailwind to showcase my projects and designs, this project uses ISR(Incremental Static Regeneration) to increase website performance while reducing server load.
- Github API
- Dribbble v2 API
- Animate on Scroll
- Typewriter Effect
- Glide JS
- NextJS v13
- Next Themes
- TS Particles
- Nodemailer
- React Google ReCAPTCHA
- Direction Aware Card Hover
- Scroll Animations using AoS
- Carousel using Glide JS
- Responsive Layout
- Themes Switch (light and dark mode) using next-themes
- ISR (revalidates every 60 seconds)
- Dynamic Web using API
- 404 Page with particle animations (Recently added)
- Contact Form integration using nodemailer, with ReCAPTCHA v2 (Recently added)
- Clone this repository
git clone https://github.com/ervin-sungkono/Portfolio-Website-v2.git
- Setup env variables
cp .env.example .env
Variable | Description |
---|---|
DRIBBBLE_TOKEN |
Dribbble API token, get it here |
GITHUB_USERNAME |
Your Github username |
GITHUB_TOKEN |
Your Github API token(optional), get it here |
SECRET_TOKEN |
Secret token for on-demand ISR using /api/revalidate?secret={SECRET_TOKEN} route |
SITE_URL |
Your site URL |
EMAIL |
Your email for nodemailer |
EMAIL_PASS |
Your email's password for nodemailer, see how to get it here for gmail |
NEXT_PUBLIC_RECAPTCHA_KEY |
Your ReCAPTCHA site key |
RECAPTCHA_SECRET |
Your ReCAPTCHA secret, register it here |
- Install dependency
npm install
- Run the app
npm run dev
This project is deployed using Vercel, click here to see the result.