A modern, multilingual personal website built with Next.js 15, showcasing professional work, thoughts, talks, and personal interests. This is Iván Olivares' personal website for 2025, featuring a clean design and comprehensive content management system.
🌐 Live Website: iolivares.com
- 🌍 Multilingual Support: Full English and Spanish localization
- 📝 Blog System: Markdown-powered thoughts/blog section with syntax highlighting
- 🎤 Talks Showcase: Comprehensive speaking engagements and presentation archive
- 📸 Photography Gallery: Personal photography collection display
- 🎵 Vinyl Collection: Interactive vinyl records showcase
- 📄 Resume/CV Section: Professional experience and skills presentation
- 🔗 Connect & Links: Centralized contact and social media links
- 🛠️ Tech Stack Showcase: Tools and technologies used professionally
- ⚡ Performance Optimized: Built with Next.js 15 App Router for optimal performance
- 🎨 Modern UI: Clean design using Tailwind CSS and shadcn/ui components
- 📱 Fully Responsive: Mobile-first design that works on all devices
- 🌙 Dark Mode Support: Integrated theme switching capabilities
- ⌨️ Command Palette: Quick navigation with keyboard shortcuts
- Next.js 15 - React framework with App Router
- React 19 - UI library with latest features
- TypeScript 5 - Type safety and developer experience
- Tailwind CSS 4 - Utility-first CSS framework
- shadcn/ui - High-quality, accessible component library
- Radix UI - Unstyled, accessible UI primitives
- Lucide React - Beautiful, customizable icons
- React Markdown - Markdown rendering
- Remark GFM - GitHub Flavored Markdown support
- Static Content Management - Markdown files in
/content
directory
- next-themes - Theme management
- cmdk - Command palette component
- Geist Font - Modern, readable typography
- @vercel/analytics - Web analytics and insights
Make sure you have the following installed:
- Node.js 18+ (recommended: use nvm)
- pnpm 10.16.1 (this project uses pnpm as the package manager)
-
Clone the repository
git clone https://github.com/ivolivares/iolivares.com-v2025.git cd iolivares.com-v2025
-
Install dependencies
pnpm install
-
Run the development server
pnpm dev
-
Open your browser
Navigate to http://localhost:3000 to see the website in action.
pnpm dev
- Start development serverpnpm build
- Build for productionpnpm start
- Start production serverpnpm lint
- Run ESLint
Blog posts are stored as Markdown files in the /content/thoughts/
directory. Each post includes frontmatter with metadata:
---
title: "Your Post Title"
date: "2024-01-15"
readTime: "5 min"
excerpt: "Brief description of the post content"
tags: ["tag1", "tag2", "tag3"]
published: true
---
# Your content here...
- Translations are managed in
/public/locales/
en.json
- English translationses.json
- Spanish translations- Add new translation keys to both files to maintain consistency
Update your talks and speaking engagements in /lib/talks-data.ts
. The file exports structured data for:
- Upcoming talk schedules
- Past presentations
- Talk descriptions and links
This website is designed to be easily customizable for your own portfolio. Here's how to make it yours:
-
Update package.json
- Change
name
,description
,homepage
- Update
author
information - Modify
repository
URLs
- Change
-
Modify app/layout.tsx
- Update the
title
anddescription
in metadata - Change the site title and tagline
- Update the
-
Update translation files
- Replace personal information in
/public/locales/en.json
and/public/locales/es.json
- Update navigation labels, bio, and contact information
- Replace personal information in
-
Colors and Theme
- Modify the color scheme in
tailwind.config.js
(if you create one) - Update CSS custom properties in
app/globals.css
- Modify the color scheme in
-
Typography
- Change the font in
app/layout.tsx
(currently using Geist) - Import and configure your preferred font from Google Fonts
- Change the font in
-
Images and Media
- Replace images in
/public/
with your own - Update image references throughout the components
- Replace images in
-
Remove Unwanted Sections
- Delete corresponding directories from
/app/
- Remove navigation links from components
- Update translation files
- Delete corresponding directories from
-
Add New Sections
- Create new directories in
/app/
- Add corresponding page components
- Update navigation and translations
- Create new directories in
This project is optimized for Vercel deployment:
-
Manual Setup
- Push your code to GitHub
- Connect your repository to Vercel
- Vercel will automatically detect Next.js and deploy
pnpm build
# Upload the .next/out directory (if using static export)
# Railway will automatically detect and deploy Next.js apps
- Run
pnpm build
- Configure your server to serve the
.next
directory - Ensure Node.js environment is available
If you add any environment variables, make sure to:
- Add them to your deployment platform
- Document them in this README
- Provide example values in
.env.example
While this is a personal website, contributions are welcome! Here's how you can help:
- Report Issues: Found a bug? Open an issue
- Suggest Improvements: Have ideas? Create an issue with the "enhancement" label
- Submit Pull Requests: Fork, create a feature branch, and submit a PR
- Follow the existing code style and structure
- Write meaningful commit messages
- Test your changes locally before submitting
- Update documentation as needed
For detailed contributing guidelines, see CONTRIBUTING.md.
Build fails with Node.js version error
- Ensure you're using Node.js 18 or higher
- Use
nvm use
if you have a.nvmrc
file
pnpm not recognized
- Install pnpm:
npm install -g pnpm
- Or use corepack:
corepack enable
Styling issues after updates
- Clear Next.js cache:
rm -rf .next
- Reinstall dependencies:
pnpm install
Images not loading
- Check that images are in the
/public
directory - Verify image paths in components
- Ensure proper Next.js Image component usage
This project is licensed under the MIT License - see the LICENSE file for details.
You are free to use this code for your own personal website. If you do, I'd appreciate a mention or link back to the original repository, but it's not required.
Iván Olivares R.
- Website: iolivares.com
- Email: hi@iolivares.com
- X (Twitter): @ivolivares
- GitHub: @ivolivares
- LinkedIn: ivolivares
- v0.dev - AI-powered development tool used for initial prototyping and design
- shadcn/ui - For the beautiful, accessible component library
- Vercel - For hosting and deployment platform
- Next.js Team - For the incredible React framework
This is the 2025 version of my personal website. The prototype and design were created using v0.dev, demonstrating how AI can assist in rapid prototyping and development.
If you want to read more about the development process and thoughts behind this website, check out: Building my v2025 website with V0: Thoughts on using AI for prototyping and shipping
For previous versions of this website, visit: iolivares-dot-com repository
Built with ❤️ using v0.dev by Iván Olivares from Chile 🇨🇱