My portfolio website.
Residing at plutopulp.com.
Wanting to have a bit of fun with CSS animations and the like.
Features include:
- CSS keyframes spiral-like animations
- Responsive design that shouldn't fall apart too much
- Project showcases with image slider and movies
- Skills section with some sequence animations
- Contact form that actually sends emails. Revolutionary stuff!
Some technologies that were used in the making of this website:
- Framework: Next.js 15
- Styling: Tailwind CSS – Bit of styled-components thrown in there for the spiral-animation stuff, was way easier and clearer
- Animation: Framer Motion – For transitions.
- Components: Custom-built, with occasional help from Headless UI
- Deployment: Vercel – Quick and easy
You'll need:
If you want email functionality to work for the contact form, you'll need to add some emailjs related environment variables.
Create a .env.local file in the web directory with the following variables:
# EmailJS configuration
NEXT_PUBLIC_EMAILJS_SERVICE_ID=your_service_id
NEXT_PUBLIC_EMAILJS_TEMPLATE_ID=your_template_id
NEXT_PUBLIC_EMAILJS_PUBLIC_KEY=your_public_key# Install dependencies
make install
# Start server
make dev-localThe site will appear at localhost:3000.
For the container enthusiasts:
# Development environment
make dev
# Production-like environment
make dev-prod
# View logs of running container
make logs
# Access container shell
make shellDefault port is 3000. To use a different one:
make dev PORT=3001# Production build
make build
# Check code style
make lint
# Clean up
make cleanplutopulp.com/
├── web/ # Frontend application
│ ├── src/
│ │ ├── app/ # Next.js app router and pages
│ │ ├── components/ # UI components
│ │ │ ├── about/ # About section components
│ │ │ ├── contact/ # Contact form components
│ │ │ ├── landing/ # Landing page components
│ │ │ ├── layout/ # Layout components (navbar, footer)
│ │ │ ├── projects/ # Project showcase components
│ │ │ ├── sections/ # Main page sections
│ │ │ ├── skills/ # Skills visualization
│ │ │ └── ui/ # Reusable UI components
│ │ ├── contexts/ # React contexts
│ │ ├── hooks/ # Custom React hooks
│ │ ├── lib/ # Utilities and data
│ │ │ ├── projects.ts # Project data
│ │ │ ├── skills.ts # Skills data
│ │ │ └── utils.ts # Helper functions
│ │ └── types/ # TypeScript definitions
│ ├── public/ # Static assets
│ │ ├── images/ # Image assets
│ │ └── icons/ # Icon assets
│ └── ... # Configuration files
├── docker/ # Container setup
│ ├── Dockerfile
│ └── docker-compose.yml
└── Makefile # Command shortcuts
Hosted on Vercel. Commits to main branch trigger automatic deployments.
Content can be modified in:
src/lib/projects.ts- Project informationsrc/lib/skills.ts- Skills and technologies
Feel free to use this as inspiration for your own portfolio.
- Built by Yvan Buggy (@plutopulp)
