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

@lessly/landing-ui

v0.10.1

Published

Lepsto landing UI — reference library for the landing's components, and its catalog

Readme

@lessly/landing-ui

The reference library for Lepsto's public site UI — the landing, the docs, and every pre-login surface — and its catalog.

The counterpart of lepsto-ui / ui.lepsto.com, on the other side of one boundary: everything before the login lives here, everything behind it lives there.

Why

The components our public sites are built from are only visible inside those sites — there is nowhere to see them as a list, compare states, or point at one. The catalog is that place, and it doubles as the source of issues: spot a defect, file an issue linking the exact story, someone fixes it in the site's own repository.

How it is filled

The catalog is filled one building block at a time, sourced only from current production, one block per issue. A block is a single component, taken as it is in production today.

What this repository no longer does: transfer pages wholesale, keep HTML snapshots of production routes, or copy the landing's React layer across in one move. Nothing enters from memory, from a design file, or from an older copy — only from the surface as it ships now.

What the catalog holds today: the Button primitive, the layout grid, the type scale and its typefaces, plus a triage area where a production surface is parked before anyone decides what to make of it. More primitives arrive one issue at a time.

Quick start

pnpm install
pnpm storybook      # catalog on http://localhost:6008

Relationship to production

The direction is one-way — reference → production, through an issue. Spot a defect in a story, file an issue in the repository of the surface that is wrong; nobody copies code back here. Full sync rule in AGENTS.md.

Scripts

| Script | What it does | |---|---| | pnpm storybook | catalog on :6008 | | pnpm build-storybook | static catalog → storybook-static/ | | pnpm build | package build (tsup) → dist/ | | pnpm lint / type-check / test | the local gate, same as CI | | pnpm changeset | record what a pull request changed for a reader of the catalog | | pnpm release:version | fold pending changesets into CHANGELOG.md and date the heading | | pnpm release:publish | publish to npm (CI runs this; you should not need it locally) |

The catalog opens on the Changelog page, pinned first in the sidebar: it renders the root CHANGELOG.md, which changesets write from those per-PR notes — not from git history.

Brand asset sources

The three SVGs in .storybook/public/logos/ are byte-for-byte copies of the approved design-system logos. The catalog's favicon.svg is an identical copy of lepsto-symbol-brand.svg. Its og.png is a 1200 × 630 export of the owner-supplied OG-Lepsto-landing.png (1280 × 720). The source is centre-cropped to 1280 × 672 (24px off the top and bottom), then uniformly scaled to 1200 × 630. The text, logo and artwork are not redrawn. The export uses browser Canvas: getImageData(0, 24, 1280, 672) copies the crop without changing its pixels; drawImage then scales it to 1200 × 630 with imageSmoothingQuality = 'high'. The original source is retained unchanged.

Retired Lessly artwork remains in Git history.

SiteHeader loads /logos/lepsto-lockup-h-on-light.svg and /logos/lepsto-lockup-h-on-dark.svg. Consuming sites must serve these files from their public directory: this package publishes code in dist/, not the catalog's static assets. The sidebar uses the light-surface lockup; the header selects the appropriate lockup for its surface, including a dark hero in the light theme.

The shared favicon/app-icon export set lives in design-system. This catalog uses the approved SVG symbol directly and does not require raster app icons. No separate canonical icon set is maintained here.

Brand names and links

Current catalog copy uses Lepsto. The package remains @lessly/landing-ui; renaming its npm scope is a separate migration. Inspector event and DOM identifiers also retain their existing names. Dated source audits, commit references and historical changelog entries keep their original provenance.

Public links and the support address follow lepsto-landing's site copy. The landing, docs, status and UI catalog URLs were checked on 22 September 2026. The support address is source-verified; email delivery was not tested. The terminal illustration's generated hostnames follow the deployment domain documentation.

Publishing

The catalog ships as @lessly/landing-ui on the public npm registry, so a site consumes the component rather than a copy of it. Merging the "Release: version packages" pull request publishes and tags; pushing a v<version> tag is the manual fallback. Details and the constraints behind them are in AGENTS.md.