HTMLPortfolioTool Site

portfolio-template (elias4044) — HTML Portfolio Template

By elias4044

A Node.js CLI-based portfolio website generator that produces static HTML/CSS/JS portfolio pages through Q&A prompts, with an optional Discord Webhook contact form backend.

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-12View source

What stands out

A quick read of the recorded project description.

01

Generate a portfolio through interactive Q&A with npx create-portfolio, no manual coding required

02

Supports custom input for name, role, skills, projects, contact information, and more

03

Provides a createPortfolio JavaScript API for programmatic site generation in scripts

04

Output is static HTML/CSS/JS pages that can be deployed to GitHub Pages, Vercel, Netlify, and other static hosts

05

The contact form is optional and can connect to an Express backend or Vercel serverless function, forwarding to a Discord Webhook

06

The code is under the MIT license, allowing free use, modification, commercial use, and distribution

Template Details

This project is a portfolio website generator, primarily an HTML/CSS/JS template used with a Node.js command-line tool. After running npx create-portfolio, you enter your name, role, skills, projects, and contact information as prompted; the output defaults to the my-portfolio folder, and you can also specify a custom output directory. The generated site is static and can be previewed by opening index.html directly in a browser.

Beyond the CLI, the project also provides a JavaScript API: import the createPortfolio function from the package, pass a configuration object containing name, role, skills, projects, and contacts along with an output directory, and you can generate the site programmatically in a script. The template directory includes EJS template files index.html, styles.css, script.js, and favicon icon assets.

The contact form is an optional feature that must be enabled separately: copy .env.example to .env, set DISCORD_WEBHOOK_URL (along with ENABLE_CONTACT_FORM and PORT), install dependencies in the generated directory, then start the Express backend via npm start, or run the Vercel serverless function with vercel dev; form messages are sent to the specified Discord Webhook. Without this backend enabled, the site itself remains a purely static page.

The project is under the MIT license, allowing free use, modification, commercial use, and distribution of the code, provided the copyright notice and license notice are retained; third-party assets such as demo images, fonts, and icons must be checked separately under their respective licenses, and external services such as domains and hosting may incur separate charges.

HTMLPortfolioTool site

Is it right for your project?

Use Cases

  • Individual developers or designers quickly building a personal portfolio page to showcase projects and contact information
  • Generating a static resume/portfolio site via command-line Q&A without writing front-end code
  • Deploying a portfolio to static hosting platforms such as GitHub Pages, Vercel, or Netlify
  • Personal sites that need a contact form and forward visitor messages to a Discord channel

Suitable For

  • Individual users with a Node.js environment who are willing to generate a site via the command line
  • Developers who need to quickly produce static portfolio pages and deploy them themselves
  • Users who want to modify or distribute based on MIT-licensed code

Getting started & customization

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

  1. 1

    Run npm install to install dependencies, then execute npx create-portfolio (or install globally and run create-portfolio) and follow the prompts to generate the site

  2. 2

    The output defaults to the my-portfolio folder; you can also specify a custom output directory when invoking

  3. 3

    For the contact form, copy .env.example to .env and set DISCORD_WEBHOOK_URL, ENABLE_CONTACT_FORM, and PORT

  4. 4

    When enabling the backend, enter the generated directory, run npm install, then start the service with npm start or vercel dev

  5. 5

    Licenses for third-party assets such as demo images, fonts, and icons must be checked separately and cannot be determined solely by the code's MIT license

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use, and distribution of this version's code are permitted.
  • 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 under their respective licenses and cannot be determined solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
  • The contact form is an optional feature; enabling it requires configuring a Discord Webhook URL yourself, which is an external service dependency that you must apply for and bear the associated costs.
  • After enabling the contact form, messages submitted by visitors are forwarded to the specified Discord channel; you must prepare and maintain that external service yourself.
  • A valid Discord Webhook address is required to use the contact form backend, which is an external service account/key requirement.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

### Enable Contact Form (Optional) 1. Copy `.env.example` to `.env` and set your Discord webhook URL:

Original README

The contact form will send messages to your Discord!

Original README

DISCORD_WEBHOOK_URL=your_discord_webhook_url_here

Original README
https://github.com/elias4044/portfolio-template/blob/main/LICENSEhttps://github.com/elias4044/portfolio-template/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-12. 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 · 82 / 100
Technologies
HTML
Website type
Portfolio · Tool Site
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
2025-07-06
Screenshot last checked
2026-10-12

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.

Review declaration: [email protected] · 2026-10-13

Inspect the recorded source material

SHA-256: 0ad24255bbeb1aac2de175634ef81acc989ee0d81242ee6d77354096bbee594c

2026-10-12T14:10:14.762Z

Source file / repository
# Portfolio Template Generator
A modern, customizable portfolio website generator. Instantly create a beautiful, interactive HTML/CSS/JS portfolio with your own projects and contact info—no coding required!

[Live Demo](https://elias4044.vercel.app/) · [NPM Package](https://www.npmjs.com/package/@elias4044/portfolio-template)
<br>
<br>
![Preview Of Website](https://elias4044.vercel.app/assets/preview.png)

## Features
- **Easy CLI:** Answer a few prompts and generate your portfolio in seconds
- **Customizable:** Add your name, role, skills, projects, and contacts
- **Modern Design:** Responsive, animated, and stylish (HTML, CSS, JS)
- **Contact Form:** Optional backend (Node.js/Express) with Discord webhook support
- **Deploy Anywhere:** Works on GitHub Pages, Vercel, Netlify, or any static host

## Quick Start

### 1. Install dependencies
```sh
npm install
```

### 2. Generate your portfolio
```sh
npx create-portfolio
```
_Or, if installed globally:_
```sh
npm install -g .
create-portfolio
```

You’ll be prompted for your name, role, skills, projects, and contact methods. Your site will be generated in the `my-portfolio` folder (or specify a custom output directory).

### 3. Preview your site
Open the generated `index.html` in your browser.

---

## Advanced Usage

### Use in JavaScript
You can use the generator programmatically:
```js
import { createPortfolio } from 'portfolio-template';

await createPortfolio({
  name: 'Jane Doe',
  role: 'Web Developer',
  skills: ['JS', 'CSS', 'React'],
  projects: [
    { name: 'Cool App', description: '...', tech: ['React'], website: '...', github: '...' }
  ],
  contacts: [
    { method: 'Email', label: '[email protected]', link: 'mailto:[email protected]' }
  ]
}, 'output-folder');
```

### Enable Contact Form (Optional)
1. Copy `.env.example` to `.env` and set your Discord webhook URL:
   ```sh
   cp .env.example .env
   # Edit .env and set DISCORD_WEBHOOK_URL
   ```
2. Install dependencies:
  ```sh
  cd my-portfolio
  npm install
  ```

3. Start the backend:
   ```sh
   npm start
   ```
   OR

   ```sh
   vercel dev
   ```
3. The contact form will send messages to your Discord!

---

## Project Structure
```
cli.js                # CLI tool
index.js              # Main API
package.json          # Project config
README.md             # This file
template/             # HTML/CSS/JS template
  index.html          # EJS template
  styles.css          # Styles
  script.js           # JS
  api/                # Backend (optional)
    express-server.js # Express backend
    vercel-function-contact.js # Vercel serverless function
  favicon/            # Icons
```
## Environment Variables
Create a `.env` file in the root:
```
ENABLE_CONTACT_FORM=true
DISCORD_WEBHOOK_URL=your_discord_webhook_url_here
PORT=3000
```

## Contributing
Contributions are welcome! If you have a suggestion or want to fix a bug, please feel free to open an issue or submit a pull request.

Please read the [Contributing Guidelines](https://github.com/elias4044/portfolio-template/blob/main/.github/CONTRIBUTING.md) for details on the code of conduct and the process for submitting pull requests.

## License
MIT

---
Portfolio generator by Elias ([@elias4044](https://github.com/elias4044))
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.