Skip to content

A responsive and customizable portfolio template built with Eleventy (11ty). Designed for developers to showcase their skills, projects, and testimonials with modern design and optimal performance.

License

Notifications You must be signed in to change notification settings

pranav89624/OptiFolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OptiFolio - Modern Developer Portfolio Template

OptiFolio is a high-performance, modern portfolio template for developers, built with Eleventy (11ty). It features a sleek dark theme, mobile-first responsive design, and CSS-only animations for a delightful user experience.


If you like this project, please ⭐ star and fork the repository to support its development!


✨ Features

  • Perfect Lighthouse scores (100/100) Lighthouse Scores
  • Sleek dark theme with purple accents
  • Mobile-first responsive layout
  • CSS-only animations and interactions
  • Semantic HTML5 and accessible markup
  • Minimal vanilla JS (only 2.6KB)
  • Easy content customization via Nunjucks templates

Customization:
To enable, disable, or tweak features, modify the relevant partials under src/_includes/partials/. For example, to switch color accents or adjust performance features, edit src/styles/style.css or the animation code in HTML/CSS partials.

πŸš€ Quick Start

# 1. Clone repository
git clone https://github.com/pranav89624/OptiFolio.git
cd OptiFolio

# 2. Install dependencies
npm install

# 3. Start development server
npm run start

# 4. Build for production
npm run build

Customization:
Use your own repository link in the git clone step.
If you wish to deploy to a different output directory, adjust the output in .eleventy.js.
You can add custom npm scripts in your package.json for additional workflows.

πŸ— Project Structure

src/
β”œβ”€β”€ _includes/
β”‚   β”œβ”€β”€ layouts/
β”‚   β”‚   └── base.njk          # Main template
β”‚   └── partials/             # Component library
β”‚       β”œβ”€β”€ header.njk        # Navigation bar
β”‚       β”œβ”€β”€ hero.njk          # Introduction section  
β”‚       β”œβ”€β”€ skills.njk        # Skills matrix
β”‚       β”œβ”€β”€ projects.njk      # Work showcase
β”‚       β”œβ”€β”€ testimonials.njk  # Client feedback
β”‚       β”œβ”€β”€ cta.njk           # Contact CTA
β”‚       └── footer.njk        # Footer content
β”œβ”€β”€ styles/
β”‚   └── style.css             # Global stylesheet
β”œβ”€β”€ index.njk                 # Homepage content
.eleventy.js                  # 11ty configuration

Customization:

  • Add, remove, or rename sections by editing, duplicating, or deleting partials in src/_includes/partials/.
  • To reorganize the site structure, modify base.njk and update navigation in header.njk.
  • Add global styles or new CSS files in src/styles/.
  • Place your favicon or other static assets in the appropriate directory and update HTML references.

🎨 Customization Guide

Personalize Content

Edit the hero section with your name and tagline:

<!-- src/_includes/partials/hero.njk -->
<h1 class="hero-title">Your Name Here</h1>
<p class="hero-subtitle">Your professional tagline</p>

Customization:
Change the text, add images, or insert extra markup for social links or call-to-action buttons as needed.

Modify Design

Tweak theme colors and fonts in src/styles/style.css:

:root {
  --color-primary: #6366f1;
  --color-dark: #0f172a;
  --color-light: #f8fafc;
  --font-base: 'Inter', sans-serif;
  --font-mono: 'Space Mono', monospace;
}

Customization:
Adjust the hex values for your brand, import your own fonts, or add new CSS variables for additional theming.

Add Projects

Add project cards in src/_includes/partials/projects.njk:

<article class="project-card">
  <div class="project-image">
    <img src="/your-project.webp" alt="Project" loading="lazy">
  </div>
  <div class="project-content">
    <h3>Project Title</h3>
    <p>Project description...</p>
    <ul class="project-tech">
      <li>React</li>
      <li>Node.js</li>
    </ul>
  </div>
</article>

Customization:
Duplicate the <article> block for more projects, update image sources, edit descriptions, and list relevant technologies.
You can also add new fields or links (e.g., demo, case study) as needed.


⚑ Performance Optimizations

Technique Implementation Details
Critical CSS Inlined in base template (base.njk)
Image Loading Native lazy loading (loading="lazy")
Font Handling Preload in <head> with crossorigin
JavaScript Minimal, inlined in base.njk
Animations Hardware-accelerated CSS transforms

Customization:

  • To add or remove optimizations, tweak the <head> section in your layout, the CSS in styles/, or the minimal JS at the bottom of base.njk.
  • Replace or add font providers, change preload strategies, or use your own image CDN.

🀝 Section-by-Section Customization

Header & Navigation

  • Edit src/_includes/partials/header.njk to update nav links.
  • To add a new section, create a new partial and add a link in this file.

Skills

  • Update your skills in skills.njk by editing the list items or adding/removing cards.

Education

  • Add your degrees and certifications by editing or duplicating the <article> blocks in the education section partial.

Projects

  • See above in "Add Projects" for details.

Testimonials

  • Edit testimonials.njk to add, update, or remove testimonials.
  • Each testimonial is a <blockquote class="testimonial-card"> block.

Call to Action (CTA)

  • Update your contact details or call-to-action text in cta.njk.
  • Add direct email, social links, or forms as needed.

Footer

  • Edit footer.njk for copyright, attribution, and additional links.

πŸš€ Deployment

Netlify

  1. Sign up and connect your GitHub account.
  2. Click New Site from Git and select your OptiFolio repository.
  3. Set build command: npm run build
  4. Set output directory: _site
  5. Click Deploy Site.

Vercel

  1. Sign up and import your repo.
  2. Set build command: npm run build
  3. Set output directory: _site
  4. Click Deploy.

GitHub Pages

  • Not recommended for 11ty-based dynamic sites, but possible with some workarounds.

Live Demo

View OptiFolio Live

Troubleshooting

  • If you see a blank page, check the output directory and asset paths.
  • Review the deploy logs for missing dependencies or build errors.

πŸ›  Tech Stack

  • Eleventy (11ty): A fast, modern static site generator.
  • Nunjucks: A powerful templating engine for HTML.
  • CSS: Custom styles with variables, responsive design, and animations.
  • Vanilla JS: Minimal JavaScript for interactions.

Learn more about static site generators and CSS animations through 11ty resources and CSS Tricks.


β™Ώ Accessibility Statement

OptiFolio is designed with accessibility in mind:

  • Semantic HTML5 ensures screen readers can parse content effectively.
  • ARIA roles are applied where necessary for better navigation.
  • High contrast colors are used for readability.

Tips for Customization:

  • Maintain sufficient color contrast when changing theme colors.
  • Test your site’s accessibility using tools like Lighthouse or axe.
  • Ensure all interactive elements (e.g., buttons, links) are keyboard-navigable.

  • πŸ›  Built with Eleventy by Pranav
  • 🎨 Designed for developers
  • πŸ“± Fully responsive on all devices

About

A responsive and customizable portfolio template built with Eleventy (11ty). Designed for developers to showcase their skills, projects, and testimonials with modern design and optimal performance.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published