Welcome to my professional portfolio website! I’m Edwin Ogola, a Full Stack Software Engineer passionate about building scalable web applications tailored for East African markets. This site showcases my skills, projects, and insights into the tech world, designed to connect with potential employers and clients.
- Responsive Design: Optimized for all devices, with special attention to mobile (critical for East African markets)
- Dark/Light Mode: Toggle between themes for comfortable viewing
- Fast Loading: Optimized for variable connection speeds common in East Africa
- PWA Capabilities: Partial offline functionality
- Interactive UI: Smooth animations and transitions using Framer Motion
- Filterable Projects: Easy navigation through different types of work
- Blog/Articles: Technical content sharing capabilities
- Contact Form: Direct communication channel for potential clients/employers
- Framework: Next.js - React framework with SSR/SSG capabilities
- Styling: Tailwind CSS - Utility-first CSS framework
- Animations: Framer Motion - Animation library for React
- Form Handling: React Hook Form with Zod validation
- Deployment: Vercel (optimized for Next.js)
- Email: Nodemailer for contact form submissions
portfolio-website/
├── public/ # Static assets
├── src/
│ ├── app/ # Next.js App Router pages
│ ├── components/ # Reusable React components
│ ├── hooks/ # Custom React hooks
│ ├── context/ # React context providers
│ ├── lib/ # Data and API functions
│ ├── utils/ # Utility functions
│ └── styles/ # Global styles
- Home - Introduction, featured projects, skills overview
- About - Professional journey, education, personal interests
- Projects - Filterable portfolio of development work
- Skills & Services - Technical capabilities and offered services
- Blog - Technical articles and case studies
- Resume - Interactive resume with downloadable PDF
- Contact - Comprehensive contact form with alternative methods
- Node.js 18.x or later
- npm or yarn
-
Clone the repository
git clone https://github.com/edwinogola/portfolio-website.git cd portfolio-website
-
Install dependencies
npm install # or yarn install
-
Create a
.env.local
file in the root directory with the following variables:NEXT_PUBLIC_SITE_URL=http://localhost:3000 EMAIL_SERVICE=gmail EMAIL_USERNAME=your-email@gmail.com EMAIL_PASSWORD=your-app-password CONTACT_EMAIL=your-email@gmail.com
-
Run the development server
npm run dev # or yarn dev
-
Open http://localhost:3000 in your browser
- Add project images to
/public/images/projects/
- Add project data to
/src/lib/projects.js
- Create a new Markdown file in
/src/content/blog/
- Include frontmatter with title, date, excerpt, and featured image
This site is optimized for deployment on Vercel:
npm run build
# or
vercel deploy
Edwin Ogola - hello@edwinogola.com
Website: edwinogola.com
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with ❤️ for the East African tech community.
- Inspired by modern portfolio designs and Next.js best practices.
Let’s build something amazing together!