A modern, responsive portfolio website built with Next.js 14 to showcase my development skills and projects.

- 🎨 Modern Design - Clean, responsive UI with smooth animations and transitions
- 📱 Mobile-First - Fully responsive design that works on all devices
- ⚡ Performance Optimized - Built with Next.js 14 for lightning-fast loading
- 📧 Contact Form - Integrated contact form with email validation and delivery
- Next.js 14 - React framework with App Router
- React 18 - UI library with latest features
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Tailwind Motion - Smooth animations
- React Icons - Beautiful icon library
- Cloudflare Workers - Deployment and hosting
- Prettier - Code formatting
Here's how to run it locally:
- Node.js 18+
- npm or pnpm
- Git
-
Clone the repository
git clone https://github.com/ashlin-a/portfolio.git cd portfolio
-
Install dependencies
npm install # or pnpm install
-
Set up environment variables
cp .env.example .env
The contact form uses Resend for email delivery:
- Sign up for a Resend account
- Get your API key from the dashboard
- Add the API key to your
.env
file
RESEND_API_KEY=your_resend_api_key
-
Run the development server
npm run dev # or pnpm run dev
-
Open http://localhost:3000 in your browser
- Built custom contact form with Zod schema validation
- Integrated Resend API for reliable email delivery
- Implemented client-side and server-side validation
- Mobile-first approach with Tailwind CSS
- Smooth transitions using Tailwind Motion
- Interactive navigation with scroll detection
This portfolio is deployed on Cloudflare Workers, chosen for its excellent performance, generous free tier and global CDN.
pnpm run build
pnpm run deploy
- Connected GitHub repository to Cloudflare Workers
- Configured build settings (Next.js framework preset)
- Added environment variables in Cloudflare dashboard
- Automatic deployments on every push to main branch
- Lightning-fast global CDN
- Excellent performance metrics
- Seamless integration with Cloudflare ecosystem
Project screenshots and images are stored in Cloudflare R2 for:
- Cost-effective object storage
- Global distribution via CDN
- Seamless integration with Cloudflare Pages
- Optimized image delivery
This project helped me master:
- Next.js 14 App Router - Modern React framework patterns
- TypeScript Integration - Type-safe development workflow
- Form Handling - Custom validation without external form libraries
- Email Integration - Server-side API routes with Resend
- Responsive Design - Mobile-first CSS architecture
This project is licensed under the GNU GPL License - see the LICENSE file for details.
- Icons from React Icons
- Animations powered by Tailwind Motion
- People illustrations by Storyset
Ashlin Asokan
- Website: ashlin.dev
- LinkedIn: @simpleashlin
- Email: mail@ashlin.dev
⭐ Feel free to explore the code and see how it's built!