A modern, responsive portfolio website showcasing my work in bioinformatics, software development, and various tech projects. Built with Next.js and deployed on Firebase Hosting.
🌐 Live Site: portfolio-3fef6.web.app Also available at alexfastner.me
- Framework: Next.js 16 (React 19)
- Styling: Tailwind CSS 4
- Language: TypeScript
- Hosting: Firebase Hosting
- Deployment: Static export for optimal performance
portfolio/
├── app/ # Next.js app directory
│ ├── page.tsx # Homepage
│ ├── education/ # Education page
│ └── projects/ # Project pages
│ ├── page.tsx # Projects listing
│ └── [slug]/ # Individual project pages
├── components/ # React components
│ ├── Navigation.tsx # Main navigation
│ ├── ProjectCard.tsx # Project card component
│ ├── ImageGallery.tsx # Image gallery component
│ └── ProjectStructure.tsx # Project structure display
├── lib/ # Utility functions
│ ├── projects.ts # Project data
│ └── types.ts # TypeScript types
├── public/ # Static assets
│ └── images/ # Project and profile images
└── scripts/ # Build scripts
└── generate-sitemap.mjs
- Run the development server for local testing:
npm run devAvailable here: http://localhost:3000
Projects are defined in lib/projects.ts. Add new projects to the projects array with the following structure:
{
slug: 'project-slug',
title: 'Project Title',
description: 'Short description',
longDescription: 'Detailed description...',
technologies: ['Tech1', 'Tech2'],
githubUrl: 'https://github.com/...',
liveUrl: 'https://example.com',
image: '/images/project-image.png',
images: ['/images/img1.png', '/images/img2.png'], // Optional gallery
featured: true // Optional
}The site is configured for static export and deployed to Firebase Hosting.
npm run buildThis generates a static site in the out/ directory.
# Option 1: Using npm script
npm run deploy
# Option 2: Manual deployment
firebase deploy --only hostingThis project is private and proprietary.