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

frosty

v0.0.144

Published

A fast, flexible, and modern JSX-based UI library.

Downloads

3,428

Readme

Frosty

A fast, flexible, and modern JSX-based UI library.

Features

  • ⚡ Fast rendering and reconciliation
  • 🧩 Flexible component model
  • 🎨 Built-in style and CSS support
  • 🪝 Modern hooks API
  • 🌐 SSR-ready (Server-side rendering)

Installation

Install Frosty using npm:

npm install frosty

Quick Start

Here's a simple example to get you started:

import { useState } from 'frosty';

function App() {
  const [count, setCount] = useState(0);
  return (
    <div>
      <h1>Hello, Frosty!</h1>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>
        Count: {count}
      </button>
    </div>
  );
}

export default App;

See the comprehensive documentation for detailed guides, API reference, and advanced usage patterns.

Application Entry Point

Your application entry point (the main file you pass to Frosty CLI) must export your root component as the default export. This is required for Frosty to properly identify and render your application.

// app.tsx or app.js
import { useState } from 'frosty';

function MyApp() {
  // Your application logic here
  return <div>Hello World!</div>;
}

// Required: Export your root component as default
export default MyApp;

This default export pattern ensures that:

  • Frosty CLI can automatically detect your application component
  • Server-side rendering (SSR) works correctly
  • Client-side hydration functions properly
  • Your app integrates seamlessly with the Frosty build system

Usage

To run your app with Frosty CLI using npx:

npx frosty run app.js

Common Options

  • -w, --watch   Enable watch mode (rebuild on file changes)
  • -d, --debug   Enable debug mode (development build)
  • -p, --port <port> Specify server port (default: 8080)
  • -c, --configuration <file> Use a custom config file (default: server.config.js)
  • -s, --src <dir>  Specify source directory
  • -o, --output <dir> Specify output directory

Example Commands

Start your app in development mode with watch:

npx frosty run --watch --debug app.js

Run with a custom port and config:

npx frosty run --port 3000 --configuration my.config.js app.js

See npx frosty run --help for the full list of options.

Configuration File (Optional)

Customize build and server behavior with a server.config.js file in your project root.

  • You may export an object or a function (env, argv) => config.
  • All fields are optional.
module.exports = {
  src: 'src',                // Source directory
  output: 'dist',            // Output directory
  serverEntry: 'server.js',  // Server entry file
  client: {                  // (Optional) Client entry points
    main: {
      entry: 'src/app.js',   // Path to client entry file
      uri: '/',              // (Optional) URI path
    }
  },
  moduleSuffixes: {          // (Optional) Custom module resolution suffixes
    client: ['.browser', '.web', ''],
    server: ['.node', '.server', '.web', '']
  },
  polyfills: {},             // (Optional) Polyfill options for Babel
  postcss: {},               // (Optional) PostCSS configuration
  options: {                 // (Optional) Webpack and build options
    resolve: {},             // Custom resolve options (e.g., alias)
    externals: {},           // Webpack externals
    plugins: [],             // Additional Webpack plugins
    module: {
      rules: []              // Additional Webpack module rules
    },
    server: {
      plugins: [],           // Server-specific plugins
      module: {
        rules: []            // Server-specific module rules
      }
    }
  }
};

TypeScript Setup

To enable JSX support with Frosty in TypeScript, update your tsconfig.json:

{
  "compilerOptions": {
    "jsx": "react-jsx",
    "jsxImportSource": "frosty"
  }
}

This configures TypeScript to use Frosty's JSX runtime.

Babel Setup

To use Frosty with Babel, add the following to your Babel config:

{
  "presets": [
    [
      "@babel/preset-react",
      {
        "runtime": "automatic",
        "importSource": "frosty"
      }
    ]
  ]
}

Contributing

We welcome contributions! Please open issues or submit pull requests.

License

MIT © O2ter Limited