This is a personal portfolio website built with Next.js, TypeScript, and Tailwind CSS. It features a minimalist, "Nothing"-inspired design with glitch effects, smooth animations, and a functional contact form that integrates with Firebase and Resend for email notifications.
- Modern, Minimalist Design: Inspired by the "Nothing" brand aesthetic, with a dark theme and clean typography.
- Interactive UI: Features custom cursors, glitch text effects, and smooth scroll animations.
- Project Showcase: A responsive carousel to display your projects with links to GitHub and live demos.
- Contact Form: A fully functional contact form that:
- Saves all messages directly to a Firestore database.
- Sends an email notification for each new message using Resend.
- Responsive Layout: Looks great on all devices, from mobile phones to desktops.
- AI Integration Ready: Built with Genkit for potential future AI features.
- Framework: Next.js (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: ShadCN/UI
- Animations: GSAP & Framer Motion (via Tailwind CSS animations)
- Database: Firebase Firestore
- Email Service: Resend
- Icons: Lucide React
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
-
Clone the repository:
git clone https://github.com/erzer12/my-portfolio.git cd my-portfolio -
Install dependencies:
npm install
-
Set up Environment Variables: Create a file named
.env.localin the root of your project by copying the example file:cp .env.example .env.local
Now, open
.env.localand fill in the required values.a. Firebase Configuration:
- Go to your Firebase Console.
- Create a new project or select an existing one.
- In your Project Settings > General tab, scroll down to "Your apps".
- Click the Web icon (
</>) to create a new web app or select your existing one. - You will find a
firebaseConfigobject. Copy the corresponding values from this object into your.env.localfile for eachNEXT_PUBLIC_FIREBASE_*variable.
b. Resend Configuration:
- Sign up for Resend and verify a domain you own.
- Create an API Key in the Resend dashboard.
- Add the API key to your
.env.localfile asRESEND_API_KEY. - In
src/app/actions.ts, update thefromandtoemail addresses in theresend.emails.sendfunction to match your verified domain and desired recipient.
-
Run the development server:
npm run dev
Open http://localhost:9002 with your browser to see the result.
This app is ready to be deployed on any platform that supports Next.js, such as:
- Vercel: The easiest way to deploy a Next.js app. Simply connect your GitHub repository.
- Firebase App Hosting: The
apphosting.yamlfile is already configured.
Remember to set your environment variables (especially RESEND_API_KEY and all NEXT_PUBLIC_FIREBASE_* keys) in your hosting provider's dashboard.