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

dashforge-cli

v0.6.0

Published

Scaffold a ready-to-run Dashforge dashboard app (Tailwind or MUI) in seconds.

Readme

dashforge-cli

Scaffold a ready-to-run Dashforge app in seconds — pick your UI library and template and get a themed, dark-mode-ready Vite + React + TypeScript project.

Three templates:

  • dashboard — an app shell with stat cards, example cards, a data table, mock auth, RBAC and forms.
  • landing — a fast, fully pre-rendered SaaS landing page (hero, features, pricing, FAQ, CTA), SEO-ready and responsive.
  • crud — a full-stack starter: the dashboard plus a Posts CRUD section wired to a small Express + file-store backend (client/ + server/, one command runs both).

All come in tw (Tailwind) and mui (Material UI). No lock-in — just the boilerplate you'd otherwise write by hand.

Requirements: Node ≥ 22.22. Both this CLI and the app it generates need it — the generated app is built on React Router 8 + Vite 7, which require Node ≥ 22.22.

Usage

npx dashforge-cli my-app --lib tw                      # dashboard (default)
npx dashforge-cli my-site --lib tw --template landing  # landing page
npx dashforge-cli my-app --lib mui --template crud     # full-stack CRUD

Or fully interactive (it will ask for the directory and the library):

npx dashforge-cli

The key=value form works too:

npx dashforge-cli my-app lib=mui template=dashboard

Options

| Option | Description | | ------------------- | ---------------------------------------------------- | | [directory] | Target directory (positional). | | --lib <tw\|mui> | UI library: tw = Tailwind, mui = MUI. | | --template <name> | Template: dashboard (default), landing, or crud.| | --install | Install dependencies after scaffolding. | | --no-install | Skip the dependency install. | | --force, -f | Scaffold into a non-empty directory. | | --help, -h | Show help. | | --version, -v | Print the version. |

Variants

  • tw@dashforge/tw (Tailwind CSS): AppShell + LeftNav + TopBar, Card, Table, Chip, Typography, themed via dashforgePreset() and DashforgeTailwindProvider. Dark mode via toggleMode().
  • mui@dashforge/ui (Material UI): AppShell + DashforgeThemeProvider, base @mui/material Card / Table. Dark mode by swapping the theme (defaultLightTheme / defaultDarkTheme).

What's inside

Both variants scaffold the same starter, built on react-router in framework mode:

  • Routing + SEO — real routes (app/routes.ts). Public pages (/, /sign-in) are pre-rendered to static HTML (ssr: false + prerender); the app is client-rendered behind sign-in. Deploy the build/client folder to any static host — no Node server required.
  • Themed app shell — side nav + top bar, workspace switcher, four stat cards, two example cards (chart placeholders), and a data table with mock data. Dark mode wired and working.
  • Mock authlogin → session → route guard. Sign in as admin, editor, or viewer (@demo.dev, password password).
  • RBAC (@dashforge/rbac) — a /app/rbac example plus role-gated actions across the app.
  • Forms (@dashforge/forms) — a /app/forms example with validation and dependent fields.
  • Users CRUD — list + create/edit/delete over a kit-style API layer (app/api: types + provider selecting live/mock via VITE_PROVIDER + service returning a Result<T> + mock/ + live/), so it runs with no backend and swaps to your real API by implementing the live/ files.
my-app/
  react-router.config.ts   # ssr: false + prerender (public pages)
  vite.config.ts
  tsconfig.json
  app/
    root.tsx               # providers (auth, theme)
    routes.ts              # route table
    routes/                # home, sign-in, dashboard, users, rbac, forms, settings
    api/                   # kit-style API layer (auth, users) — mock + live stubs
    lib/                   # auth, policy, useAsync, theme
    components/            # StatCard, WorkspaceSwitcher, UserMenu, …
    data/mock.ts           # mock stats, activity, orders

Charts are intentionally left out — the two dashboard "chart" blocks are example cards; drop in your own charting library where you see the {/* Add your chart here */} marker.

Development (for this CLI)

npm install
npm run build      # bundle src/ → dist/index.js (esbuild)
node dist/index.js /tmp/demo --lib tw --no-install

License

MIT