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

@opentf/create-afw

v0.5.0

Published

Create an AFW app on Vite and Node: npm create @opentf/afw.

Readme

@opentf/create-afw

Create an AFW app on Vite and Node:

npm create @opentf/afw@latest

The prompts ask for a project name and a template, then only what that template needs (arrow keys and Enter). The dependencies are installed and the command to start the dev server is shown. Nothing is started for you.

| Prompt | Asked for | Choices | | --- | --- | --- | | Template | every project | app, docs, library | | Rendering | app | spa (in the browser), ssr (per request, hydrated), ssg (prerendered) | | Server | app, unless ssr | API routes, middleware, loaders and server functions on Node: yes or no | | Styling | app, library | CSS, or Tailwind CSS | | Blog | docs | Posts with RSS and Atom feeds: yes or no (default) | | Language | every project | TypeScript (default), JavaScript |

Or pass the choices:

npm create @opentf/afw@latest my-app -- --template app --render ssg --server --tailwind
npm create @opentf/afw@latest my-docs -- --template docs-js --blog

| Option | Values | | --- | --- | | -t, --template | app, docs, library; add -ts or -js for the language (app-js) | | -r, --render | spa (default), ssr, ssg — app only | | --server, --no-server | Add a Node server, or not (default) — app only; ssr always has one | | -s, --styling | css (default) or tailwind; --tailwind for short — app and library | | --blog, --no-blog | Add a blog, or not (default) — docs only | | -l, --language | ts (default) or js | | --overwrite | Remove the files in a non-empty target directory first | | --no-install | Skip installing dependencies | | --no-interactive | Never ask; use defaults for anything not given (also the default without a terminal) |

| Template | What you get | | --- | --- | | app | File-based pages and a component test; with a server, an API route, middleware, a loader and server functions | | docs | An @opentf/afw-docs site: MDX docs, prerendered, with search, sitemap.xml and llms.txt; with --blog, a blog with RSS/Atom feeds | | library | Components published as JSX source (index.js and src/), @opentf/afw as a peer dependency, a preview app and a test |

The names of earlier releases still work: spa, fullstack (app --server), ssr and ssg.

  • A non-empty target directory: choose to cancel, remove its files, or ignore them.
  • A folder name that is not a valid package name: you are asked for one (My App → my-app).
  • Apps and docs sites have dev, build and test (Vitest) scripts, and either start (the built Node server) or preview. A library has dev (its preview) and test. TypeScript projects add typecheck.
  • New projects depend on the current AFW release from the npm registry.

For the esdev + ES-Runtime workflow, use esdev create instead.

License

MIT