A modern, responsive portfolio website built with Flutter Web designed specifically for Flutter developers to showcase their skills, projects, and experience.
- π¨ Modern & Clean Design - Professional UI with smooth animations
- π± Fully Responsive - Works perfectly on mobile, tablet, and desktop
- β‘ Fast Performance - Optimized for web with efficient rendering
- π― Flutter-Focused - Showcases Flutter skills and projects effectively
- π Easy Customization - Replace content with your own information
- π§ Developer-Friendly - Well-structured code with clear comments
- π Dark Mode Ready - Includes dark theme support
- Flutter 3.19+ - Latest Flutter framework
- Dart 3.3+ - Strongly typed programming language
- flutter_screenutil - Responsive design utilities
- Material Design 3 - Modern design system
- Flutter Web - Web platform support
Before you begin, ensure you have:
- Flutter SDK (version 3.19.0 or higher)
- Dart SDK (version 3.3.0 or higher)
- Chrome/Brave browser for development
- Git for version control
- IDE (VS Code or Android Studio with Flutter plugin)
git clone https://github.com/yourusername/flutter-portfolio.git
cd flutter-portfolioflutter pub get# For Chrome
flutter run -d chrome
# For Brave (if installed)
flutter run -d web-server
# Then open http://localhost:8080 in Braveflutter build web --releaseThe build output will be in /build/web directory.
lib/
βββ main.dart # Application entry point
βββ screens/
β βββ home_screen.dart # Main portfolio screen
βββ widgets/
β βββ navbar.dart # Navigation bar
β βββ hero_section.dart # Hero/banner section
β βββ about_section.dart # About me section
β βββ skills_section.dart # Skills showcase
β βββ projects_section.dart # Projects gallery
β βββ contact_section.dart # Contact form
β βββ footer.dart # Footer
βββ utils/
β βββ responsive_wrapper.dart # Responsive design wrapper
β βββ responsive_mixin.dart # Responsive utilities
β βββ responsive_grid.dart # Responsive grid system
βββ models/ # Data models (optional)
βββ services/ # API services (optional)
Edit the following files to add your personal details:
lib/widgets/hero_section.dart- Update name, title, biolib/widgets/about_section.dart- Update about me contentlib/widgets/skills_section.dart- Update your skillslib/widgets/projects_section.dart- Add your projectslib/widgets/contact_section.dart- Update contact info
Edit lib/main.dart to customize the theme:
theme: ThemeData(
primarySwatch: Colors.blue, // Change primary color
fontFamily: 'Inter',
useMaterial3: true,
),Update the projects list in projects_section.dart:
final List<Map<String, dynamic>> projects = [
{
'title': 'Your Project Name',
'description': 'Project description...',
'technologies': ['Flutter', 'Firebase', '...'],
'github': 'https://github.com/yourusername/project',
'demo': 'https://demo.yourproject.com',
'image': 'assets/images/project1.jpg',
},
// Add more projects...
];Update social links in multiple sections:
- Hero section social icons
- Contact section contact info
- Footer social links
Add your images to assets/images/ and update image paths:
- Profile photo in
hero_section.dartandabout_section.dart - Project images in
projects_section.dart
# Install Firebase CLI
npm install -g firebase-tools
# Login to Firebase
firebase login
# Initialize Firebase
firebase init hosting
# Deploy to Firebase
firebase deploy --only hosting- Enable GitHub Pages in repository settings
- Set source to
gh-pagesbranch - Use GitHub Actions to auto-deploy
- Drag and drop
/build/webfolder to Netlify - Or connect your GitHub repository
- Set build command:
flutter build web - Set publish directory:
build/web
- Import your Git repository
- Set framework preset to "Other"
- Set build command:
flutter build web - Set output directory:
build/web
The portfolio automatically adapts to different screen sizes:
- Mobile: < 768px
- Tablet: 768px - 1199px
- Desktop: β₯ 1200px
Breakpoints are handled by flutter_screenutil and custom responsive utilities.
Create a run.sh file for quick development:
#!/bin/bash
flutter clean
flutter pub get
flutter run -d chromeOr for Windows (run.bat):
@echo off
flutter clean
flutter pub get
flutter run -d chromeTo improve SEO for your portfolio:
- Update meta tags in
web/index.html - Add Open Graph tags for social sharing
- Create a sitemap.xml
- Add alt text to all images
- Use semantic HTML structure (Flutter web generates this)
-
Image Optimization
- Compress all images
- Use WebP format
- Implement lazy loading
-
Code Splitting
- Consider deferred loading for heavy sections
- Use
FutureBuilderfor async content
-
Build Optimization
- Use
--releaseflag for production builds - Enable tree-shaking with
--tree-shake-icons
- Use
-
Browser not detected
flutter run -d web-server # Then manually open http://localhost:8080 -
CORS issues during development
- Run a local server:
python -m http.server 8080in build/web - Or use Chrome with disabled security:
chrome --disable-web-security
- Run a local server:
-
Responsive issues
- Check
flutter_screenutilinitialization - Verify breakpoints in responsive utilities
- Check
-
Build errors
flutter clean flutter pub get flutter build web --release
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter Team for the amazing framework
- flutter_screenutil for responsive utilities
- All contributors and the Flutter community
For support, email your.email@example.com or create an issue in the GitHub repository.
| Section | Description |
|---|---|
| π― Hero | Introduction with name, title, and call-to-action |
| π€ About | Personal bio, experience, and statistics |
| π‘ Skills | Technical skills with progress indicators |
| π Projects | Featured projects with descriptions and links |
| π Contact | Contact form and contact information |
| π£ Footer | Copyright and quick links |
| Color | Hex | Usage |
|---|---|---|
| Primary Blue | #2563EB |
Buttons, links, highlights |
| Deep Purple | #7C3AED |
Accents, gradients |
| Light Gray | #F8FAFC |
Backgrounds |
| Dark Gray | #1E293B |
Text, headings |
| White | #FFFFFF |
Cards, text on dark |
- Update
web/index.htmlwith your meta tags - Add your Google Analytics ID
- Create
robots.txtfile - Add
sitemap.xml - Set up social media preview images
- Add structured data (JSON-LD)
- Submit to Google Search Console
When Flutter updates:
# Update Flutter
flutter upgrade
# Update dependencies
flutter pub outdated
flutter pub upgrade
# Test the build
flutter analyze
flutter test
flutter build web --releaseHappy Coding! π
Built with β€οΈ using Flutter
## π Additional Files to Create
### **LICENSE** (Create a LICENSE file)
```text
MIT License
Copyright (c) 2024 [Your Name]
Permission is hereby granted...
# Flutter
.flutter-plugins
.flutter-plugins-dependencies
.packages
.pub-cache/
.pub/
/build/
# Android
*.jks
*.keystore
# iOS
*.mode1v3
*.mode2v3
*.moved-aside
*.pbxuser
*.perspectivev3
# IDE
.vscode/
.idea/
*.iml
*.swp
*.swo
# OS
.DS_Store
Thumbs.db<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta name="description" content="Flutter Developer Portfolio - Showcasing mobile and web applications built with Flutter">
<!-- iOS meta tags & icons -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="portfolio_web">
<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/>
<title>Your Name - Flutter Developer Portfolio</title>
<link rel="manifest" href="manifest.json">
</head>
<body>
<script src="main.dart.js" type="application/javascript"></script>
</body>
</html>