HTMLPortfolioStarter

devfolio-starter — HTML Portfolio Template

By duduboiii123

DevFolio Starter is a dark-themed developer portfolio template written in pure HTML, CSS, and vanilla JavaScript. It includes a typewriter role animation, project category filtering, scroll-triggered skill bars and counters, contact form validation, and other interactions, while retaining several known defects for GSSoC 2026 contributors to practice on.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-02View source

What stands out

A quick read of the recorded project description.

01

Implemented in pure HTML, CSS, and vanilla JavaScript, with no build step or framework dependencies

02

Dark theme with colors managed centrally through CSS custom properties

03

Includes interactions such as a typewriter role animation, scroll reveal, skill bar and counter animations, and a 3D tilt effect on project cards

04

Project list supports category filtering, and the contact form includes front-end validation

05

The repository README lists 10 intentionally retained defects as GSSoC 2026 contribution tasks

06

MIT licensed, permitting use, modification, commercial use, and distribution

Template Details

DevFolio Starter is published on GitHub by duduboiii123 under the MIT license. It is a static page template for showcasing a developer's personal work. It does not rely on build tools or frameworks. The page structure is contained in index.html, styles are split across css/style.css and css/animations.css, interaction logic lives in js/main.js and js/animations.js, and images and icons are stored in the assets/ directory.

The template is dark-themed by default, manages colors with CSS custom properties, and is laid out mobile-first. Implemented interactions include: a typewriter effect that cycles through role text, filtering project cards by category, animating skill bar widths and number counters when their sections scroll into view, a contact form with validation, a back-to-top button, scroll reveal animations, and a 3D tilt effect on project cards.

Note that the repository README explicitly lists 10 intentionally retained defects as GSSoC 2026 contribution tasks. Examples include a viewport meta tag missing its content attribute, which breaks mobile adaptation; a hamburger menu toggle that does not pass a class name argument; an email input whose type is set to text; a footer year hardcoded to 2023; and an email validation regex that only checks for @. These defects are spread across index.html, js/main.js, and js/animations.js, meaning the current repository version is incomplete in mobile responsiveness and some interactions. Fix or adjust them before using it directly.

To use it, clone the repository and open index.html directly in a browser, or preview it with a local static server such as Live Server. To customize, edit the name, bio, and project content in index.html, change the color scheme via the CSS variables in css/style.css, and place your personal photo in assets/.

HTMLPortfolioStarter

Is it right for your project?

Use Cases

  • Developers building a personal portfolio page to present their bio, skills, and project list
  • As practice material for learning vanilla JavaScript interactions such as scroll listening, animations, and form validation
  • As a starter repository for open-source contribution programs such as GSSoC 2026, where fixing known defects helps contributors learn the submission workflow
  • Deploying directly on static hosting such as GitHub Pages, with no backend or build process required

Suitable For

  • Developers who want to quickly start a personal portfolio with pure HTML/CSS/JS
  • Open-source contribution beginners who want to practice front-end debugging and defect fixing
  • Front-end learners who need a dark-themed static template with animation effects
  • Users who prefer a workflow with no build tools and files that can be previewed by opening them directly

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    After cloning the repository, open index.html directly in a browser, or preview it with a local static server such as Live Server

  2. 2

    To customize content, edit the name, bio, and project information in index.html

  3. 3

    To change the color scheme, modify the CSS custom properties in css/style.css

  4. 4

    Place your personal photo in the assets/ directory and replace the corresponding reference

  5. 5

    Before use, it is advisable to fix the known defects listed in the README, especially the mobile adaptation issue caused by the viewport meta tag missing its content attribute

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version in the public repository under the MIT license; the free scope applies to that version's code and does not mean external services or third-party assets are free.

Must comply with when using

  • You may use, modify, commercialize, and distribute this version's code for free.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; the code's MIT license alone is not sufficient to judge them.
  • External services such as domains, hosting, databases, payments, or AI may incur separate charges.
View Original Text Basis

Compiled by DeepSeek based on repository license and README ·2026-10-02. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 85 / 100
Technologies
HTML
Website type
Portfolio · Starter
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-06-04
Screenshot last checked
2026-10-02

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies HTML as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Automatically checked against source and license rules; no manual editorial review.

Inspect the recorded source material

SHA-256: 0304e85391631931b37a2df1637f2b0e8f3033a8d38f1bf27b33935688bd3f81

2026-10-02T17:35:02.804Z

Source file / repository
# 🚀 DevFolio Starter

A clean, modern **developer portfolio template** built with pure HTML, CSS, and Vanilla JavaScript. Dark-themed, responsive, and packed with smooth animations.

> **GSSoC 2026 Project** — Open for contributions! See the [Issues](#-known-bugs--open-issues) below to get started.

![HTML5](https://img.shields.io/badge/HTML5-E34F26?style=flat&logo=html5&logoColor=white)
![CSS3](https://img.shields.io/badge/CSS3-1572B6?style=flat&logo=css3&logoColor=white)
![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black)
![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)

---

## ✨ Features

- 🌑 Dark-mode design with CSS custom properties
- 📱 Responsive layout (mobile-first)
- 🔡 Typewriter role animation
- 🎯 Project filter by category
- 📊 Animated skill bars on scroll
- 🔢 Animated stat counters
- 📬 Contact form with validation
- 🔝 Back-to-top button
- 🎞️ Scroll reveal animations
- 🃏 3D tilt effect on project cards

---

## 📁 Project Structure

```
devfolio-starter/
├── index.html          # Main HTML page
├── css/
│   ├── style.css       # Main styles & layout
│   └── animations.css  # Keyframes & animation classes
├── js/
│   ├── main.js         # Core interactivity
│   └── animations.js   # Scroll, parallax, tilt effects
├── assets/             # Images & icons 
├── CONTRIBUTING.md
└── README.md
```

---

## 🚀 Getting Started

1. **Clone the repo**
   ```bash
   git clone https://github.com/duduboiii123/devfolio-starter.git
   cd devfolio-starter
   ```

2. **Open in browser**
   ```bash
   # Option 1: Just open index.html in your browser
   open index.html

   # Option 2: Use Live Server (VS Code extension) for hot reload
   ```

3. **Customize**
   - Edit the name, bio, and projects in `index.html`
   - Swap colours via CSS variables in `css/style.css`
   - Add your real photo in the `assets/` folder

---

## 🐛 Known Bugs & Open Issues

These bugs are **intentionally left in the code** for contributors to find and fix as part of **GSSoC 2026**. Each is a real, impactful bug — not a typo.

| # | File | Description | Difficulty |
|---|------|-------------|------------|
| 1 | `index.html` | `<meta name="viewport">` is missing its `content` attribute — page is **not mobile responsive** | 🟢 Easy |
| 2 | `index.html` | Hamburger `<button>` has no `onclick` — but `main.js` attaches the listener; **the bug is in `main.js`** (see #7 below) | 🟢 Easy |
| 3 | `index.html` | Project filter: the `active` class is on the **"JavaScript"** button, not "All" | 🟢 Easy |
| 4 | `index.html` | Skill bar `<div>`s have `style="width: 0%"` hardcoded — the JS observer sets `data-width` correctly but the CSS transition won't work without fixing the initial HTML | 🟡 Medium |
| 5 | `index.html` | Email `<input>` has `type="text"` — should be `type="email"` for proper browser validation | 🟢 Easy |
| 6 | `index.html` | Footer copyright year is **hardcoded as 2023** — should dynamically show the current year via JS | 🟢 Easy |
| 7 | `js/main.js` | `navLinks.classList.toggle()` is called **without the class name argument** — hamburger menu never opens | 🟢 Easy |
| 8 | `js/main.js` | Counter animation `increment` is `target / 10` — with `setInterval` at 80ms this gives imprecise jumpy counts; should use `Math.ceil(target / 50)` or similar | 🟡 Medium |
| 9 | `js/main.js` | Email validation regex `/@/` only checks for `@` — accepts `abc@` as valid. Should be a proper email regex | 🟡 Medium |
| 10 | `js/animations.js` | Page fade-in doesn't animate — `transition` is never set before `opacity` changes, so the body just snaps to visible | 🟡 Medium |

---

## 🙋 How to Contribute (GSSoC 2026)

We welcome all contributions — bug fixes, new features, accessibility improvements, and docs!

### Step 1: Find an issue
Browse the [Issues tab](../../issues) and comment on one you'd like to work on. Wait for it to be assigned to you.

### Step 2: Fork & clone
```bash
git clone https://github.com/duduboiii123/devfolio-starter.git
```

### Step 3: Create a branch
```bash
git checkout -b fix/bug-7-hamburger-menu
```

### Step 4: Fix & commit
```bash
git add .
git commit -m "fix: hamburger menu toggle missing class name argument"
```

### Step 5: Open a Pull Request
Push to your fork and open a PR against `main`. Reference the issue number in your PR description.

---

## 💡 Feature Ideas (Good First Issues)

- [ ] Add a **dark/light mode toggle**
- [ ] Add a **loading spinner** on page start
- [ ] Make the **navbar active link** highlight based on scroll position
- [ ] Add **form accessibility** (aria-labels, error messages)
- [ ] Add a **smooth scroll progress bar** at the top of the page
- [ ] Convert to use **CSS Grid** for the skills section
- [ ] Add a **"copy email" button** in the contact section
- [ ] Add **keyboard navigation** support for the project filter

---

## 📋 Contribution Guidelines

- One bug fix per pull request
- Write a clear PR description explaining what you changed and why
- Test your changes in at least two browsers (Chrome + Firefox)
- Do not use AI-generated code without understanding every line
- Be respectful and inclusive in all discussions

---

## 📄 License

[MIT](LICENSE) — free to use, modify, and distribute.

---

<p align="center">Made with ❤️ for GSSoC 2026</p>
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

simplefolio

simplefolio

Simplefolio is a minimal single-page portfolio template for developers, built with HTML, Bootstrap, SCSS, and Parcel under the MIT license. It includes Hero, About, Projects, Contact, and Footer sections, with content edited in /src/index.html and theme colors controlled by two SCSS variables.

HTML · Portfolio

Freelancer

Freelancer

A bright, single-page Bootstrap portfolio template for freelancers, designers, and small studios. It includes a responsive portfolio grid with modal detail windows and an SB Forms contact form that requires an API token.

HTML · Portfolio

Resume

Resume

A single-page resume and CV template from Start Bootstrap, built on Bootstrap with a fixed sidebar and content sections.

HTML · Portfolio

Creative

Creative

A single-page marketing template by Start Bootstrap for creative agencies and product services, built on Bootstrap with SCSS, featuring a portfolio grid and call-to-action sections. It includes pre-set SB Forms markers for form integration and npm build scripts for source customization.

HTML · Corporate Website

startbootstrap-simple-sidebar

startbootstrap-simple-sidebar

A Bootstrap off-canvas sidebar navigation HTML starter template from Start Bootstrap. It provides directly editable HTML and CSS in the dist directory, while the source uses Pug, SCSS, and JavaScript with npm build scripts for live preview and compilation.

HTML · Starter

adminkit

adminkit

AdminKit is a free, MIT-licensed HTML admin and dashboard template built on Bootstrap 5. The free version includes 15 demo pages, 1 plugin, and 1 color scheme, with hundreds of UI components, forms, tables, charts, and icons.

HTML · Admin dashboard