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

girky

v1.23.0

Published

Create a Girk site from Markdown

Readme

Girk

Markdown-first static sites without the sprawl.

Girk turns a plain folder of Markdown, media, and a small JSON config into a static site you can deploy anywhere.

Supported Node versions: 20.19+, 22.12+, and 24 through 25.

Install

Run it directly:

npx girky

Or install it globally:

npm install --global girky

Then run:

girk

What It Does

Girk keeps the content model simple:

  • the file tree becomes the route model
  • Markdown stays the source of truth
  • frontmatter handles page behavior without extra tooling
  • girk.config.json keeps shared project defaults in one place
  • build-time data sources can repeat content or fan one template out into many pages
  • the output is static HTML, CSS, and assets

Use it for:

  • documentation sites
  • product and marketing sites
  • handbooks and knowledge bases
  • blogs and archive-driven sections
  • multilingual content trees

Minimal Project

my-site/
  README.md
  features/
    README.md
    archives.md
  media/
    logo.svg

That becomes:

  • /
  • /features/
  • /features/archives/

Quick Start

  1. create a folder with Markdown files
  2. run npx girky
  3. open the generated public/ folder
  4. add frontmatter or config only where needed

Config Hooks

Useful project hooks:

  • projectStyle adds a stylesheet after the generated one
  • projectStyleOverrule replaces the generated stylesheet
  • projectScript adds classic scripts before </body>
  • projectScriptModule adds type="module" scripts before </body>

Example:

{
  "project": {
    "title": "My Site",
    "description": "A practical static site",
    "style": "/assets/site.css",
    "scriptModule": "/assets/components.js"
  }
}

Customisation

Girk supports:

  • custom CSS layered on top of the default theme
  • full stylesheet replacement
  • custom JavaScript
  • custom web components
  • Vue-powered mounts from browser-ready scripts
  • JSON-driven build-time content from local files or remote endpoints

Build-Time Data Sources

Use page frontmatter when one Markdown file should be driven by structured JSON:

---
dataSource: data/projects.json
dataItems: items
title: Projects
---

{{#each result}}
## [{{result.title}}](/projects/{{result.slug}}/)
{{result.summary}}
{{/each}}

Use dataSlug when one template file should generate many real pages:

---
dataSource: data/projects.json
dataItems: items
dataSlug: slug
title: {{result.title}}
---

# {{result.title}}

dataSource accepts remote JSON URLs and local JSON files resolved from the project root.

Remote endpoint example:

---
dataSource: https://jsonplaceholder.typicode.com/posts
title: Posts
---

{{#each result}}
## {{result.title}}
{{result.body}}
{{/each}}

Remote JSON is fetched at build time. If the endpoint is unavailable, the build fails.

Girk does not compile Vue for you. You ship browser-ready assets and reference them from project settings.

Learn More

  • Docs: https://girk.dev
  • Features: https://girk.dev/features/
  • How to Use: https://girk.dev/how-to/
  • Examples: https://girk.dev/examples/
  • Release Notes: https://girk.dev/release-notes/

Example sites:

  • https://example-basic.girk.dev/
  • https://example-multilang.girk.dev/
  • https://example-config.girk.dev/
  • https://example-blog.girk.dev/
  • https://example-recipes.girk.dev/

Repository

Source code and docs live in the monorepo: