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

let-an-agent-build-your-blog

v0.2.0

Published

A small, typed static site generator where content is a contract and presentation is fully agent-customizable.

Readme

Let an agent build your blog

CI Bun TypeScript License

A small static site generator (Bun + TypeScript) optimized for LLM agents.

No template DSL — a component is a function that takes typed content and returns an HTML string. The whole look lives in a few small functions, so an agent can rewrite the presentation layer without touching your writing or the build engine.

Quick start

Requires Bun 1.x.

bunx let-an-agent-build-your-blog my-blog
cd my-blog
bun dev   # build + watch + serve at http://localhost:3000 (drafts included)

Skip the theme prompt with a flag:

bunx let-an-agent-build-your-blog my-blog --theme cosmic   # premade theme
bunx let-an-agent-build-your-blog my-blog --theme custom   # design it with an agent
bunx let-an-agent-build-your-blog --list                   # list themes

custom scaffolds the base theme and prints the command to run the customize skill in Claude Code, Codex, Pi, or any other agent.

How it's organized

content/  →  core/ (parse)  →  site/ (render)  →  public/
  • content/ — posts and pages (Markdown + frontmatter). Frontmatter contract: content/README.md.
  • core/ — the build engine. Don't edit.
  • site/ — the active theme: site.config.ts, components/, styles/index.css. Yours to rewrite.

Each premade theme is its own branch, so on any branch site/ holds exactly one theme — nothing for an agent to confuse it with.

Customizing with an agent

The repo ships a customize skill at .claude/skills/customize/ (mirrored under .agents/). Describe the look and let it drive — it edits site/ only:

"Make it a warm sepia theme with a serif body font and a centered single-column layout."

"Turn the post listing into a dense table and add a Projects page to the nav."

Build & deploy

bun run build      # → public/

Set BASE_URL in site/site.config.ts first — it's baked into canonical URLs, Open Graph tags, the sitemap, and the RSS feed.

Theme gallery

▶ Browse them all live: trebaud.github.io/let-an-agent-build-your-blog (15 themes)

Terminal — default

Monospace Tokyo-Night with a brand@host header. Live demo · theme/terminal

Terminal theme

Minimal

One centered serif column on cream paper. Live demo · theme/minimal

Minimal theme

Editorial

Magazine masthead with a responsive card grid. Live demo · theme/editorial

Editorial theme

Personal

Centered hero with avatar and socials. Live demo · theme/personal

Personal theme

Retro

90s Web 1.0 in a Windows-95 window. Live demo · theme/retro

Retro theme

Notebook

Hand-drawn ruled-paper marker style. Live demo · theme/notebook

Notebook theme

Vaporwave

80s neon synthwave, dark by default. Live demo · theme/vaporwave

Vaporwave theme

Cosmic

Serif over a twinkling night sky. Live demo · theme/cosmic

Cosmic theme

Margin — sidebar

Fixed left sidebar with brand, nav and socials; Lora serif content column. Live demo · theme/sidebar

Margin sidebar theme

The Daily Build — newspaper

Classic broadsheet: dark Playfair masthead, featured top story, multi-column article grid. Live demo · theme/newspaper

The Daily Build newspaper theme

Chronicle — timeline

Posts alternate left/right of a center spine with date bubbles. Live demo · theme/timeline

Chronicle timeline theme

Bento — grid

Apple-style bento grid: featured cell spans 2 columns, smaller cells each get a distinct accent color. Live demo · theme/bento

Bento grid theme

Spread — cover cards

Full-bleed gradient cards per post. Fraunces display serif, vivid pastel gradients in light mode. Live demo · theme/covercards

Spread cover cards theme

License

MIT — see LICENSE.