DOCUMENTATION

everything you need to build your portfolio

INSTALLATION

NPM

Install devfolio globally using npm or your preferred package manager.

npm install -g devfolio

Or use npx to run without installing:

npx devfolio init

REQUIREMENTS

RequirementVersionNotes
Node.js>=18.0.0LTS recommended
npm>=8.0.0Comes with Node.js

QUICK START

Create a new portfolio folder with the starter template:

devfolio init

This creates a folder with portfolio.yaml and an images/ directory for your assets.

COMMANDS

devfolio init

Create a new portfolio folder

devfolio init

Interactive prompts will ask for:

  • Folder name (default: portfolio)
  • Name, title, location, email
  • Theme selection
  • Optional: GitHub, LinkedIn, Twitter, website

devfolio validate

Validate a portfolio YAML file

devfolio validate <file>

Checks for:

  • Required fields (name, title, location, email, bio)
  • Valid date formats (YYYY-MM or YYYY-MM-DD)
  • Valid URLs and email addresses
  • Proper YAML structure

devfolio render

Generate static HTML from portfolio

devfolio render [file] [options]
OptionDescription
[file]YAML file (default: portfolio.yaml)
--theme, -t <name>Theme to use (default: srcl)
--output, -o <dir>Output directory (default: ./site)

YAML SCHEMA

META

Basic information about you.

FieldTypeRequiredDescription
namestringyesYour full name
titlestringyesYour role or title
locationstringyesCity, Country
timezonestringnoTimezone (e.g., UTC-5)

CONTACT

How people can reach you.

FieldTypeRequiredDescription
emailstringyesEmail address
websiteURLnoPersonal website
githubstringnoGitHub username
linkedinstringnoLinkedIn username
twitterstringnoTwitter/X handle

BIO

A short description of yourself. Supports multiline with | syntax.

bio: |
  Line one of your bio.
  Line two continues here.

SECTIONS.EXPERIENCE

Array of work experiences.

FieldTypeRequiredDescription
companystringyesCompany name
rolestringyesYour role/title
date.startYYYY-MMyesStart date
date.endYYYY-MM | "present"yesEnd date or "present"
descriptionstringnoRole description
highlightsstring[]noKey achievements

SECTIONS.PROJECTS

Array of notable projects.

FieldTypeRequiredDescription
namestringyesProject name
descriptionstringnoShort description
urlURLnoProject URL
tagsstring[]noTechnologies used
featuredbooleannoHighlight this project

SECTIONS.SKILLS

Key-value pairs of skill categories.

skills:
  Languages: [TypeScript, Go, Python]
  Frameworks: [React, Next.js, Express]
  Tools: [Docker, Kubernetes, AWS]

SECTIONS.EDUCATION

Array of educational background.

FieldTypeRequiredDescription
institutionstringyesSchool/University name
degreestringyesDegree or certificate
date.startYYYY-MMnoStart date
date.endYYYY-MMnoEnd date
descriptionstringnoAdditional info

SECTIONS.WRITING

Array of articles, blog posts, or publications.

FieldTypeRequiredDescription
titlestringyesArticle title
urlURLyesLink to article
dateYYYY-MM-DDnoPublication date
publicationstringnoWhere published

THEMES

SRCL

Terminal aesthetic. Monospace fonts, dark theme, orange accents. Inspired by sacred.computer.

theme: srcl

MODERN

Clean and contemporary. Sans-serif typography, subtle shadows, professional feel.

theme: modern

DARK ACADEMIA

Scholarly aesthetic. Serif typography, warm browns, vintage academic feel.

theme: dark-academia

THEME SETTINGS

Configure theme behavior in your portfolio.yaml:

SettingTypeDefaultDescription
color_scheme"dark" | "light"darkDefault color scheme
show_gridbooleanfalseShow baseline grid overlay
enable_hotkeysbooleantrueEnable keyboard shortcuts
animate"none" | "subtle" | "full"subtleAnimation level

DEPLOYMENT

Deploy instantly with the Vercel CLI:

# Install Vercel CLI
npm install -g vercel

# Deploy
cd site
vercel

Or connect your GitHub repo for automatic deployments.