npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

resuml

v1.3.1

Published

Resume as Code — Generate beautiful resumes from YAML with JSON Resume theme support, validation, PDF export, and a live dev server.

Readme


YAML in → Beautiful resume out

# resume.yaml
basics:
  name: Jane Smith
  label: Senior Software Engineer
  email: [email protected]
  summary: >-
    Passionate engineer with 8+ years
    building scalable distributed systems.
work:
  - name: Acme Corp
    position: Lead Engineer
    startDate: 2020-01-15
    highlights:
      - Reduced deploy time by 60%
      - Led team of 12 engineers
resuml render --resume resume.yaml --theme stackoverflow --output resume.html

Your YAML becomes a polished, professional resume — ready to share, print, or export to PDF.


Why YAML?

| | YAML | JSON | |---|---|---| | Comments | ✅ # explain your choices | ❌ Not supported | | Multi-line strings | ✅ summary: >- block syntax | ❌ Escape everything | | Readability | ✅ Clean, minimal syntax | ⚠️ Brackets & quotes everywhere | | Diffing | ✅ Clean git diffs | ⚠️ Noisy diffs | | Compatibility | ✅ Valid JSON Resume schema | ✅ Native |

YAML is a superset of JSON — your resume stays fully compatible with the JSON Resume ecosystem while being far more pleasant to write and maintain.

Prerequisites

  • Node.js >= 20.0.0
  • npm >= 10.0.0

Installation

npm install -g resuml

Quick Start

  1. Create a YAML file for your resume (e.g., resume.yaml)
  2. Validate your resume data:
    resuml validate --resume resume.yaml
  3. Convert to JSON:
    resuml tojson --resume resume.yaml --output resume.json
  4. Render with a theme:
    resuml render --resume resume.yaml --theme stackoverflow --output resume.html

Commands

| Command | Description | |---------|-------------| | validate | Validate resume data against the JSON Resume schema | | tojson | Convert YAML resume data to JSON format | | render | Render the resume using a specified theme | | dev | Start a development server with hot-reload |

Options

| Option | Alias | Description | |--------|-------|-------------| | --resume | -r | Input YAML file(s) or directory | | --output | -o | Output file path | | --theme | -t | Theme to use for rendering | | --port | -p | Port for dev server (default: 3000) | | --language | | Language code for localization (default: en) | | --debug | | Enable debug mode for detailed errors |

Compatible Themes

Resuml supports themes from the JSON Resume ecosystem. Install a theme, then pass its name to --theme:

npm install jsonresume-theme-stackoverflow
resuml render --resume resume.yaml --theme stackoverflow

| Theme | Install | Style | |-------|---------|-------| | stackoverflow | npm i jsonresume-theme-stackoverflow | Clean, professional | | elegant | npm i jsonresume-theme-elegant | Modern, elegant | | kendall | npm i jsonresume-theme-kendall | Minimal, classic | | flat | npm i jsonresume-theme-flat | Flat design | | onepage | npm i jsonresume-theme-onepage | Single page |

Browse all themes at jsonresume.org/themes — any jsonresume-theme-* package works with resuml.

Examples

For detailed examples and usage instructions, see the examples/README.md file.

Example YAML Structure

basics:
  name: John Doe
  label: Software Engineer
  email: [email protected]
  summary: Experienced software engineer...
  location:
    city: San Francisco
    countryCode: US
  profiles:
    - network: GitHub
      url: https://github.com/johndoe

work:
  - company: Tech Corp
    position: Senior Engineer
    startDate: 2020-01
    endDate: Present
    summary: Led development of...

CI/CD: Auto-build on Push

Use GitHub Actions to automatically rebuild your resume when you push changes:

# .github/workflows/resume.yml
name: Build Resume

on:
  push:
    paths: ['resume.yaml', 'resume/*.yaml']

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - run: npm install -g resuml
      - run: npm install jsonresume-theme-stackoverflow

      - run: resuml render --resume resume.yaml --theme stackoverflow --output resume.html
      - run: resuml tojson --resume resume.yaml --output resume.json

      - uses: actions/upload-artifact@v4
        with:
          name: resume
          path: |
            resume.html
            resume.json

Node.js API Usage

You can use resuml programmatically from Node.js:

import {
  processResumeData,
  loadResumeFiles,
  loadTheme,
  themeRender
} from 'resuml';

// Load YAML files
const { yamlContents } = await loadResumeFiles('resume.yaml');
// Validate and merge
const resume = await processResumeData(yamlContents);
// Load a theme
const theme = await loadTheme('stackoverflow');
// Render HTML
const html = await theme.render(resume, { locale: 'en' });

See the CLI and API for more details.

Troubleshooting

Common Issues

  1. Validation Errors

    • Ensure your YAML follows the JSON Resume schema
    • Check for proper indentation in your YAML file
    • Verify all required fields are present
  2. Theme Rendering Issues

    • Make sure the theme is properly installed
    • Check if all required theme dependencies are installed
    • Try running with --debug flag for more information
  3. Development Server Issues

    • Ensure the specified port is available
    • Check if you have proper permissions to access the port
    • Try a different port if the default is blocked

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

ISC